Filtereigenschaften von TypeDescriptor.GetProperties () zurückgegeben wird in Abhängigkeit von der Klasse, die sie deklariert sind, in

StackOverflow https://stackoverflow.com/questions/1443314

Frage

Hey guys. Ich habe die folgende Situation.

Ich möchte ein TypeDescriptor verwenden, um die Eigenschaften eines bestimmten Typs zu erhalten. Die Tiefe des Typs in der Vererbungshierarchie kann variieren. Ich möchte nur die Eigenschaften in der Art selbst erklärt bekommen und nicht in seinen Eltern (Basis). Das Problem ist, dass, wenn ich TypeDescriptor.GetProperties () aufrufen, es würde alles zurückgeben, um die Vererbungshierarchie erklärt bis Objekt.

Ich sah nur, dass ich die Ausgabe von Attributen filtern können, aber ich will nicht ein weiteres Attribut auf die Eigenschaften in meinen Typen nur für diese hinzuzufügen. sie durch die Reflexion immer und nicht mit TypeDescriptor tun würde, was ich will, aber ist keine Option für mich, weil einige der Eigenschaften dynamisch zu einem bestimmten Zeitpunkt zu dem Typ hinzugefügt werden.

Irgendwelche Ideen? Wenn die Frage nicht klar ist, könnte ich ein Beispiel nennen.

War es hilfreich?

Lösung

Sie können die Eigenschaften filtern die ComponentType Eigenschaft mit:

var properties = from p in TypeDescriptor.GetProperties(x).Cast<PropertyDescriptor>()
                 where p.ComponentType == x.GetType()
                 select p;

Andere Tipps

Sie können nicht nur die Implementierung von ICustomTypeDescriptor ändern, um Ihre gewünschte Verhalten zu reflektieren?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top