2010-06-16 21 views
1

我已經完成了過去的這麼多次,並且成功了。這一次,我患上了失憶症。通過反思獲得一個班級的字段

所以,我只是想獲得對象上的字段。這是一個令人尷尬的簡單而愚蠢的代碼,我在測試解決方案中編寫代碼之前,我在生產代碼中執行了一些非常有用的操作。

奇怪的是,GetFieldsOf方法報告「Amazing」類中的長度爲零的數組。幫幫我。

class Amazing 
{ 
    private NameValueCollection _nvc; 
    protected NameValueCollection _myDict; 
} 


private static FieldInfo[] GetFieldsOf(string className, 
     string nameSpace = "SomeReflection") 
    { 
     Type t; 

     return (t = Assembly.GetExecutingAssembly().GetType(
      string.Format("{0}.{1}", nameSpace, className) 
      )) == null ? null : t.GetFields(); 
    } 

回答

2

看一看BindingFlags
嘗試在您的GetFields()調用中設置至少BindingFlags.Instance | BindingFlags.NonPublic

+0

乾杯。你是男人! – 2010-06-16 12:00:25