如何反射获取类中const常量,并且获取值和设置值
例如class DOC
{
public const string xmlDocumentPath = @"TestData\Model.xml";
}
Type type = typeof(DOC);
FieldInfo xmlDocumentPath = type.GetField("xmlDocumentPath", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField);
xmlDocumentPath.SetValue(modelXmlLoader, path);
结果是获取不到的,xmlDocumentPath 是null
如何反射获取类中const常量,并且获取值和设置值
谢谢! --------------------编程问答-------------------- type.GetField("xmlDocumentPath", BindingFlags.NonPublic ¦ BindingFlags.Instance ¦ BindingFlags.Public );
不要BindingFlags.GetField --------------------编程问答-------------------- 常量本来就不能被修改啊 --------------------编程问答-------------------- const常量能通过反射修改吗?还真没试过。 --------------------编程问答-------------------- --------------------编程问答-------------------- const肯定无法修改 --------------------编程问答-------------------- 上午没仔细看,你犯了两个错误:
1.const成员隐式被认为是静态的,所以要BindingFlags.Static,另外,BindingFlags.GetField在这里没有,这个枚举可用在Type.InvokeMember里
这就解释了为什么你得到的是null,因为你只要求查找实例成员,而没有去查找静态成员
2.const成员是不能修改的,即使你得到了该字段,也不能修改
补充:.NET技术 , C#