2009-07-13 90 views
2

如何以编程方式获取对FieldInfo对象是字段的对象的引用?.NET FieldInfo - 获取其*所在的对象*字段

例如,我想是这样的:

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

小烦恼:C#是一种编程语言。它没有FieldInfo。 .NET的确如此。你的主题说“C#FieldInfo”。 – 2009-07-13 15:54:02

+0

这个问题的文本可以做澄清,它看起来好像你正在寻找一个实例对象,但你真正想要的是一个类型。 – AnthonyWJones 2009-07-13 15:56:58

+0

@John:我建议你在这里回顾一下其他成千上万个C#的问题。考虑你是否也想评论所有这些。因为它永远不会消失,所以与这种模糊感相和可能会更容易。 – AnthonyWJones 2009-07-13 16:00:00

回答

12

可惜你不能因为关系工作方式恰好相反。 FieldInfo对象表示与任何实例无关的元数据。每个对象字段的实例都有一个FieldInfo。

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

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

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

3

试试这个:

myFieldInfo.DeclaringType 
相关问题