2010-06-16 54 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