C#反射-从简单的类获取字段值
我有一堂课:
class A { public string a = "A-val" , b = "B-val";
}
我想 *
//Object here is necessary.Object data = new A();
FieldInfo[] fields = data.GetType().GetFields();
String str = "";
foreach(FieldInfo f in fields){
str += f.Name + " = " + f.GetValue(data) + "\r\n";
}
这是期望的结果:
a = A-valb = B-val
不幸的是,这没有用。请帮忙,谢谢。
回答:
一旦修复以消除错误(缺少分号和错误的变量名),您发布的代码就 可以 工作-我刚刚尝试了一下,它显示的名称和值没有问题。
我的猜测是,实际上,您正在尝试使用不公开的字段。这段代码:
FieldInfo[] fields = data.GetType().GetFields();
…只会得到 公共 领域。通常,您需要指定您还需要非公共字段:
FieldInfo[] fields = data.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance);
(我希望你不会 真的 有公共领域,毕竟…)
以上是 C#反射-从简单的类获取字段值 的全部内容, 来源链接: utcz.com/qa/425591.html