我有B类及其父类A,都在命名空间Domain中.
A类,有私人领域a;
B类,有私人字段b;
然后我在命名空间反射中有一个反射Util.
如果我使用这一行
instanceOfB.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance );
找到所有字段(a& b),我只得到b.但是当我做一个受保护或公开的时候,我也找到了.
我还需要做什么来找到基类的私有领域?
解决方法
这是
documented behaviour:
Specify BindingFlags.NonPublic to include non-public fields (that is,private,internal,and protected fields) in the search. Only protected and internal fields on base classes are returned; private fields on base classes are not returned.
如果您需要获取私人领域,您需要询问基本类型. (使用Type.BaseType
查找基本类型,并调用GetFields.)