我想使用反射來調查對象的私有字段以及獲取這些字段中的值,但我很難找到它的語法。如何獲取對象的所有私有字段中的實例?
例如,一個對象有6個私人領域,我的假設是,我可以取東西的字段信息像
myObject.GetType().GetFields(BindingFlags.NonPublic)
但沒有骰子 - 呼叫返回0
請告訴我一個數組訪問字段的正確語法?
我想使用反射來調查對象的私有字段以及獲取這些字段中的值,但我很難找到它的語法。如何獲取對象的所有私有字段中的實例?
例如,一個對象有6個私人領域,我的假設是,我可以取東西的字段信息像
myObject.GetType().GetFields(BindingFlags.NonPublic)
但沒有骰子 - 呼叫返回0
請告訴我一個數組訪問字段的正確語法?
BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static
您還應該添加BindingFlags.Instance
myObject.GetType().GetFields(BindingFlags.NonPublic|BindingFlags.Instance)
你覆蓋默認的標誌,所以你需要添加Instance
回...
myObject.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
由於你想要檢索兩個字段和值:
from field in myObject.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
select new
{
Field = field,
Value = field.GetValue(myObject)
};
啊,它的實例,我失蹤 – 2009-07-30 20:01:42
剛剛添加的靜態位,以防您需要的太:) :) – leppie 2009-07-31 08:22:11