Comment obtenir la liste des proprietes d’une classe ?
Par reflexion ; pour une instance :
obj.GetType().GetProperties();
pour un type :
typeof(Foo).GetProperties();
par exemple :
class Foo {
public int A {get;set;}
public string B {get;set;}
}
...
Foo foo = new Foo {A = 1, B = "abc"};
foreach(var prop in foo.GetType().GetProperties()) {
Console.WriteLine("{0}={1}", prop.Name, prop.GetValue(foo, null));
}
Suite aux retours…
-
Pour obtenir la valeur des proprietes statiques, passez
nullcomme premier argument aGetValue -
Pour examiner les proprietes non publiques, utilisez (par exemple)
GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)(qui retourne toutes les proprietes d’instance publiques/privees).