2012-12-16 206 views
-1

比方說你有:
PropertyInfo propInfo; //假設它已經被初始化爲私人領域
private int m_Number如何通過反射屬性獲取變量/字段名稱?

的財產,如果我會做propInfo.PropertyType.Name我想我會得到類似int32int
兩個問題:

。如何通過propInfo提取變量名「m_Number」。
注意:一旦我能夠通過迭代FieldInfo而不是propInfo來完成此操作。

。如果我想用反射來知道給定類別的所有領域,應該採用什麼樣的正確方法:

A。遍歷所有屬性(假設每個字段都有屬性)
B。直接遍歷所有字段。

感謝

回答

1

的屬性沒有必然的關係,以現場 - 事實上,物業是不是一對功能之上的語法糖多一點。

如果您的代碼使用某種約定來命名支持屬性的變量(例如在您的示例中將它們預先設置爲m_),則可以依賴該約定來檢索變量名稱。在所有其他情況下,沒有直接連接,也無法通過反射API檢索該關係。

+0

我不確定我是否理解你關於'm_'的註釋。我不能假設每個字段都以m_開頭,這僅僅是一個例子。無論如何,你認爲直接迭代字段更好嗎? (只有這些字段是我在使用反射調查的類實例中的主要興趣點) – JavaSa

+1

@JavaSa在屬性和字段之間沒有找到連接的方法。如果你的主要興趣是領域,那麼你應該從字段列表開始,並試圖從中推導出屬性的名稱。但是,由於沒有直接關係,因此您可以找到沒有屬性的字段以及沒有字段的屬性。 – dasblinkenlight

相關問題