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

Jay*_*Fix 2 .net c# reflection field

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

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

myFieldInfo.GetOwner(); // returns the object of which myFieldObject is a field
Run Code Online (Sandbox Code Playgroud)

Jar*_*Par 12

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

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

FieldInfo fi = GetFieldInfo();
object o = GetTheObject();
object value = fi.GetValue(o);
Run Code Online (Sandbox Code Playgroud)

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