C# – How to get the list of properties of a class


How do I get a list of all the properties of a class?

Best Solution

Reflection; for an instance:


for a type:


for example:

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));

Following feedback...

  • To get the value of static properties, pass null as the first argument to GetValue
  • To look at non-public properties, use (for example) GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance) (which returns all public/private instance properties ).