2010-01-18 66 views
3

私有成員值我想獲得一個私有成員的值,所以我寫了以下內容:如何獲得在C#

var f = e. 
      GetType(). 
      GetFields(System.Reflection.BindingFlags.NonPublic | 
        System.Reflection.BindingFlags.Instance | 
        System.Reflection.BindingFlags.DeclaredOnly)[0]; 
object o = f.FieldType.GetProperty("RowIndex").GetValue(f.FieldType, null); 

但方法「的GetValue」需要在第一個參數原來的對象,我沒有這個對象,因爲我在運行時得到了。 任何人都可以幫助我嗎?

回答

11

我想在你的例子中原來的對象是e不是嗎?

善良,

0

你可能有更好的運氣,如果你真的分離出這反映調用到它的組成部分。它看起來對我來說,原來的對象實際上是要通過

f.FieldType.GetProperty("RowIndex") 

生成的PropertyInfo,如果你真的聲明PropertyInfo對象暫時保持這個我會說,你可以把它傳遞到GetValue調用,然後在完成後將其銷燬。