我想从类中获取属性名称。
我使用GetType()
获取属性名称,但它显示包括系统生成的属性,如... parent
public class Classtest : Activity
{
public int To { get; set; }
public int From { get; set; }
}
Classtest testclass = new Classtest();
foreach (Activity activity in testclass.Activities)
{
Type type = activity.GetType();
PropertyInfo[] propertyInfo = type.GetProperties();
foreach (var p in propertyInfo)
{
Console.WriteLine(p.Name);
prpoertyCount--;
}
}
输出我只需要From
和To
属性,但没有像parent,name这样的系统属性。
答案 0 :(得分:1)
在您的情况下,您从基类获得了属性,因为您从“活动”中获取了类型:activity.GetType();
首先应获取Classtest
的类型,然后获取数组pf属性。只需使用:
Classtest testclass = new Classtest();
var propertyInfo = testclass.GetType().GetProperties(System.Reflection.BindingFlags.Public
| System.Reflection.BindingFlags.Instance
| System.Reflection.BindingFlags.DeclaredOnly);
foreach (var p in propertyInfo)
{
Console.WriteLine(p.Name);
}
这里给GetProperties()
方法传递了一些绑定标志。您可以在MSDN