2014-09-23 101 views
2

所以我的问题是这样的:我有一个只由FieldInfo表示的对象实例。我没有其他访问该对象的权限。是否有可能通过像这样的字段信息获取该对象实例?从FieldInfo获取对象实例

MyObject myObject = fieldInfo.SomeMethodOrProperty as MyObject; 

这只是一个例子,但我认为你得到的图片。

回答

7

不,FieldInfo表示与类型有关的字段的属性和元数据。它不附加到特定的实例。当你想使用它,你必须通过你想要它使用的实例(通过GetValueSetValue

0

尽管其他答案说不,但这是可能的。
我有同样的问题和一些测试后,我发现这个代码工作:

Type oType = typeof(MyClass); 
FieldInfo[] aoFieldInfo = oType.GetFields (BindingFlags.Public | BindingFlags.Static); 

foreach (FieldInfo oFieldInfo in aoFieldInfo) 
{ 
    object oValue = oFieldInfo.GetValue (null); 
} 

,并返回所有成员,其中我以前质疑FieldInfo值/对象。