当前位置:编程学习 > C#/ASP.NET >>

如何反射获取类中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常量能通过反射修改吗?还真没试过。 --------------------编程问答--------------------
引用 2 楼 ojlovecd 的回复:
常量本来就不能被修改啊
--------------------编程问答-------------------- const肯定无法修改 --------------------编程问答-------------------- 上午没仔细看,你犯了两个错误:
1.const成员隐式被认为是静态的,所以要BindingFlags.Static,另外,BindingFlags.GetField在这里没有,这个枚举可用在Type.InvokeMember里

这就解释了为什么你得到的是null,因为你只要求查找实例成员,而没有去查找静态成员

2.const成员是不能修改的,即使你得到了该字段,也不能修改
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,