.NET FieldInfo - 获取* *是*字段的对象

时间:2009-07-13 15:48:10

标签: c# .net reflection field

如何以编程方式获取对FieldInfo对象为字段的对象的引用?

例如,我想要这样的事情:

myFieldInfo.GetOwner(); // returns the object of which myFieldObject is a field

2 个答案:

答案 0 :(得分:12)

不幸的是你不能,因为这种关系的作用相反。 FieldInfo对象表示独立于任何实例的元数据。对象字段的每个实例都有1个FieldInfo。

一般来说,所有Metadata对象(如Type,FieldInfo,MethodInfo等)都是如此......可以使用元数据对象来操作对象的实例。例如,FieldInfo可用于通过GetValue方法获取实例值。

FieldInfo fi = GetFieldInfo();
object o = GetTheObject();
object value = fi.GetValue(o);

但元数据对象永远不会与该类型的实例相关联。

答案 1 :(得分:3)

试试这个:

myFieldInfo.DeclaringType