修改enum在程序执行过程中的描述

本文关键字:过程中 描述 执行 程序 enum 修改 | 更新日期: 2023-09-27 17:51:20

甚至不确定是否可能,因为找不到任何关于这一点,我可以找到如何获取程序执行之前编写的当前描述,但无法找到一种方法来改变(设置/编辑)枚举的描述当程序已经开始,所以如果我有(只是一个例子):

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
}

我如何改变程序执行期间的描述(而应用程序已经启动)或告诉我"不可能",如果它是不可能的,谢谢你的时间。

修改enum在程序执行过程中的描述

您不能更改Description属性的值,因为属性值是静态的,并且被嵌入到编译后的程序集中。

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

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