die folgenden hypothetischen Vererbungshierarchie Angenommen:GetProperties() alle Eigenschaften für eine Schnittstellenvererbungshierarchie zurückzukehren
public interface IA
{
int ID { get; set; }
}
public interface IB : IA
{
string Name { get; set; }
}
die die Reflexion und macht den folgenden Aufruf:
typeof(IB).GetProperties(BindingFlags.Public | BindingFlags.Instance)
nachgeben nur die Eigenschaften von Schnittstelle IB
, die "Name
" ist.
Wenn wir einen ähnlichen Test auf den folgenden Code zu tun, waren
public abstract class A
{
public int ID { get; set; }
}
public class B : A
{
public string Name { get; set; }
}
der Anruf typeof(B).GetProperties(BindingFlags.Public | BindingFlags.Instance)
wird eine Reihe von PropertyInfo
Objekte für „ID
“ und „Name
“ zurückzukehren.
Gibt es eine einfache Möglichkeit, alle Eigenschaften in der Vererbungshierarchie für Schnittstellen wie im ersten Beispiel zu finden?
Pure Brillanz! Danke, das hat ein Problem gelöst, das ich der OP-Frage ähnlich hatte. – kamui
Dafür gibt es nicht genug Upvotes auf der Welt. – Chao
Ihre Verweise auf BindingFlags.FlattenHierarchy sind redundant, da Sie auch BindingFlags.Instance verwenden. –