如何使用反射设置属性值我有一个用属性装饰的类...[DataEntity("MESSAGE_STAGING",EnableCaching=true,CacheTimeout=43200)]一些需求,我想在运行时把这个值MESSAGE_STAGING改成Test_Message_Staging。实现这一目标的最佳方法是什么?我可以使用反射还是有其他方法可以做到这一点。请提供代码示例。谢谢SNA我不相信用反射设置属性是可能的——即使是,我也不鼓励你这样做。属性应该用于编译时已知的元数据。如果您想要更动态的元数据形式,请从文件加载它或改用app.config...或者至少有一些特殊的“占位符”值(如连接字符串中的|DataDirectory|)在执行时的解析时可用时间。在运行时使用反射更改属性属性值是不可能的,因为属性是在程序集中序列化的元数据,更改它们意味着更改程序集。如果我理解正确的话,有一种方法可以在运行时更改实例的属性值。结帐示例代码以上是C#学习教程:如何使用反射设置属性值的所有内容分享,如果对大家有用,需要详细了解C#学习教程,希望大家多加关注——AttributeCollectionac=TypeDescriptor.GetAttributes(yourObj);foreach(varattinac){//DataEntityAttribute--你的属性类名DataEntityAttributeda=attasDataEntityAttribute;控制台.WriteLine(da.field1);//最初它显示MESSAGE_STAGINGda.field1="Test_Message_Staging";}//检查改变的值AttributeCollectionacc=TypeDescriptor.GetAttributes(yourObj);foreach(varattinac){DataEntityAttributeda=attasDataEntityAttribute;控制台.WriteLine(da.field1);//现在显示Test_Message_Staging}收藏不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
