我正在使用反射类来获取某个对象内的所有字段。但是,我的问题是,当字段位于普通类中时,它可以完美运行,例如:
class test
{
string test1 = string.Empty;
string test2 = string.Empty;
}
在这里,我得到了 test1 和 test2,我的问题是我使用抽象,因此结合了几个类。
我得到了类似的东西:
class test3 : test2
{
string test4 = string.Empty;
string test5 = string.Empty;
}
class test2 : test1
{
string test2 = string.Empty;
string test3 = string.Empty;
}
class test1
{
string test0 = string.Empty;
string test1 = string.Empty;
}
但是当我运行它时,我没有从GetType().GetFields(BindingFlag.Default)
.
这些领域的每个人也都有一个属性,get; set;
附加到它上面。当我运行代码时,我将属性一直返回到 test1 而不是实际的字段。
这是我试图获取字段的代码:
FieldInfo[] fields = Obj.GetType().GetFields(BindingFlags.Default);
foreach (FieldInfo field in fields)
我也试过:
FieldInfo[] fields = Obj.GetType().GetFields(BindingFlags.Public
| BindingFlags.Instance
| BindingFlags.NonPublic
| BindingFlags.Static);
我对属性使用相同的代码:
PropertyInfo[] properties = Obj.GetType().GetProperties(BindingFlags.Public
| BindingFlags.Instance
| BindingFlags.NonPublic
| BindingFlags.Static);
foreach (PropertyInfo property in properties)
任何想法为什么我从抽象类而不是字段中获取属性?