Con Type.GetProperties()
è possibile recuperare tutte le proprietà della classe corrente e le proprietà public
della classe base. È in qualche modo possibile ottenere anche le proprietà private
della classe base?Ottieni proprietà private/Metodo di classe base con riflessione
Grazie
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();
questo stampa solo "Bar", perché "Foo" è nella classe base e privata.
Inoltre, è possibile iterare attraverso i tipi di base (type = type.BaseType), finché type.BaseType è null, per ottenere un'immagine completa. –
sfortunatamente questo non funziona per le proprietà private della classe base. solo per ereditato pubblico e protetto – Fabiano
@Fabiano - non pubblico include privato. –