你得反射父类的类型才行,或者循环反射个各类,参考
http://bbs.csdn.net/topics/90141299 10楼解答

解决方案 »

  1.   

     Type thisType = typeof(B);
                ArrayList list = new ArrayList();
                while (thisType.IsSubclassOf(typeof(object)))
                {
                    list.AddRange(thisType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance));
                    thisType = thisType.BaseType;
                }
    只能这样了。。妈的
      

  2.   

    http://wenku.baidu.com/link?url=xkHSqg3YvYh3SCGIyiiT7S0JajNDl7RXoX8EWSQHXNII4oUIF7RJK3USzaNH1om1ugH4gOBbyLy8JxJmb9CpSmvW5JynCp8Stes0rjuj5rS看看这个文档。
      

  3.   

    关键就是BindingFlags.NonPublic | BindingFlags.Instance
    3L回答正确。
      

  4.   

    没看清楚,是这样的,private不能被继承。你可以不断循环找基类,这个代码使用了类似的方法:
    http://blog.sina.com.cn/s/blog_497dbcd10100f8px.htmlType type = request.GetType();      //获得请求的类型  
     
            while ((type != null) && (type.FullName != "System.Web.Hosting.ISAPIWorkerRequest"))  
            {  
                type = type.BaseType;  
            }  
      

  5.   

    动手能力稍强一些就找到了:Type t = typeof(B);
    var b = t.GetFields(BindingFlags.NonPublic | BindingFlags.Instance).ToArray();t = t.BaseType;
    var a = t.GetFields(BindingFlags.NonPublic | BindingFlags.Instance).ToArray();