How do I get a list of all the properties of a class?
I am also facing this kind of requirement.
From this discussion I got another Idea,
Obj.GetType().GetProperties()[0].Name
This is also showing the property name.
Obj.GetType().GetProperties().Count();
this showing number of properties.
Thanks to all. This is nice discussion.
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...
null
as the first argument to GetValue
GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)
(which returns all public/private instance properties ).You could use the System.Reflection
namespace with the Type.GetProperties()
mehod:
PropertyInfo[] propertyInfos;
propertyInfos = typeof(MyClass).GetProperties(BindingFlags.Public|BindingFlags.Static);
Try this:
var model = new MyObject();
foreach (var property in model.GetType().GetProperties())
{
var descricao = property;
var type = property.PropertyType.Name;
}