2010-10-08 64 views
0

在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) 
{ 
    .... 
} 

如果繼承級別未知,該怎麼辦?

回答

1

你知道你正在尋找一個領域在MyClass2?如果是這樣,請繼續閱讀CurrentType.BaseType,直到CurrentType == typeof(MyClass2)

督察

Type lCurrentType = model.GetType(); 
while (lCurrentType != typeof(MyClass2) && lCurrentType != null) 
{ 
    lCurrentType = lCurrentType.BaseType; 
}