我想使用反射来调查对象的私有字段以及获取这些字段中的值,但我很难找到它的语法。如何获取对象的所有私有字段中的实例?
例如,一个对象有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