在程序执行期间更改枚举描述

时间:2016-06-27 20:34:29

标签: c# wpf enums

甚至不确定是否可能,因为找不到任何相关内容,我可以找到如何在执行程序之前获取当前描述,但无法找到更改(设置/编辑)枚举描述的方法当程序已经启动时,如果我有(只是一个例子):

public enum MyColors {
    [Description("This is green, like a cactus")]
    Green,
    [Description("This is red, like blood")]
    Red,
    [Description("This is blue, you know like water")]
    Blue,
    [Description("This is black, like the eyes of an alien")]
    Black
}

如何在程序执行期间更改说明(应用程序已启动时)或告诉我“不可能”如果不可能,感谢您的时间。

2 个答案:

答案 0 :(得分:2)

您无法更改Description属性的值,因为属性值是静态的,并且被烘焙到已编译的程序集中。

答案 1 :(得分:0)

您的描述在属性中定义。参数(字符串)被编译成中间语言IL,因此它们构成了程序集的一部分。因此,您无法在运行时更改说明。

如果需要在运行时更改它们,则需要更改链接枚举值和描述的方式。一种方法是更改​​为资源文件。