2009-07-13 58 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 
相關問題