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


当前回答

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

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

其他回答

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

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

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

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

我也面临着这样的要求。

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

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;
}
public List<string> GetPropertiesNameOfClass(object pObject)
{
    List<string> propertyList = new List<string>();
    if (pObject != null)
    {
        foreach (var prop in pObject.GetType().GetProperties())
        {
            propertyList.Add(prop.Name);
        }
    }
    return propertyList;
}

这个函数用于获取类属性列表。