Mit Type.GetProperties()
können Sie alle Eigenschaften Ihrer aktuellen Klasse und die public
Eigenschaften der Basisklasse abrufen. Ist es irgendwie möglich, die private
Eigenschaften der Basisklasse auch zu bekommen?Get private Eigenschaften/Methode der Basisklasse mit Reflexion
Dank
class Base
{
private string Foo { get; set; }
}
class Sub : Base
{
private string Bar { get; set; }
}
Sub s = new Sub();
PropertyInfo[] pinfos = s.GetType().GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
foreach (PropertyInfo p in pinfos)
{
Console.WriteLine(p.Name);
}
Console.ReadKey();
Dies druckt nur "Bar", weil "Foo" in der Basisklasse und privat ist.
Darüber hinaus ist es möglich, durch die Basistypen (type = type.BaseType) zu durchlaufen, bis type.BaseType null ist, um ein vollständiges Bild zu erhalten. –
Leider funktioniert dies nicht für private Eigenschaften der Basisklasse. nur für geerbte öffentliche und geschützte – Fabiano
@ Fabiano - nicht öffentlich umfasst privat. –