在C#中,我有以下列方式派生的类:
MyClass1 <- MyClass2 <- MyClass3 <- MyClass4 (The root class is MyClass1)
现在我有一个MyClass4 myClass4的实例。如何获取在MyClass2中声明的私有字段信息?我可以做到以下几点:
FieldInfo[] fields = model.GetType().BaseType.BaseType.
GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
foreach (FieldInfo fld in field)
{
....
}
如果继承级别未知会怎样?
答案 0 :(得分:1)
你知道你在寻找MyClass2
中的字段吗?如果是这样,请继续阅读CurrentType.BaseType
,直至CurrentType == typeof(MyClass2)
。
IOW
Type lCurrentType = model.GetType();
while (lCurrentType != typeof(MyClass2) && lCurrentType != null)
{
lCurrentType = lCurrentType.BaseType;
}