【发布时间】:2010-10-15 17:57:46
【问题描述】:
我是 C# 反射的绝对新手。我想使用反射来访问一个类中的所有私有字段,包括那些被继承的。
我已成功访问所有私有字段,不包括继承的字段,以及所有公共和受保护的继承字段。但是,我无法访问私有的继承字段。以下示例说明:
class A
{
private string a;
public string c;
protected string d;
}
class B : A
{
private string b;
}
class test
{
public static void Main(string[] Args)
{
B b = new B();
Type t;
t = b.GetType();
FieldInfo[] fields = t.GetFields(BindingFlags.Public | BindingFlags.NonPublic
| BindingFlags.Instance);
foreach(FieldInfo fi in fields){
Console.WriteLine(fi.Name);
}
Console.ReadLine();
}
}
这找不到字段 B.a.
甚至有可能做到这一点吗?显而易见的解决方案是将私有的、继承的字段转换为受保护的字段。但是,目前这超出了我的控制范围。
【问题讨论】:
标签: c# reflection