我如何获得一个类的所有属性的列表?


当前回答

我也面临着这样的要求。

从这次讨论中,我有了另一个想法,

Obj.GetType().GetProperties()[0].Name

这也显示了属性名。

Obj.GetType().GetProperties().Count();

这显示了属性的数量。

谢谢大家。这是一个很好的讨论。

其他回答

试试这个:

var model = new MyObject();
foreach (var property in model.GetType().GetProperties())
{
    var descricao = property;
    var type = property.PropertyType.Name;
}

根据@MarcGravell的回答,这里有一个在Unity c#中工作的版本。

ObjectsClass foo = this;
foreach(var prop in foo.GetType().GetProperties()) {
    Debug.Log("{0}={1}, " + prop.Name + ", " + prop.GetValue(foo, null));
}

你可以使用反射。

Type typeOfMyObject = myObject.GetType();
PropertyInfo[] properties =typeOfMyObject.GetProperties();

你可以使用这个系统。使用Type.GetProperties()方法的反射命名空间:

PropertyInfo[] propertyInfos;
propertyInfos = typeof(MyClass).GetProperties(BindingFlags.Public|BindingFlags.Static);

我也面临着这样的要求。

从这次讨论中,我有了另一个想法,

Obj.GetType().GetProperties()[0].Name

这也显示了属性名。

Obj.GetType().GetProperties().Count();

这显示了属性的数量。

谢谢大家。这是一个很好的讨论。