How to get the list of properties of a class?

后端 未结 10 1346
陌清茗
陌清茗 2020-11-21 09:48

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

10条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2020-11-21 10:41

    Reflection; for an instance:

    obj.GetType().GetProperties();
    

    for a type:

    typeof(Foo).GetProperties();
    

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

提交回复
热议问题