【问题标题】:Change enum description during program execution [duplicate]在程序执行期间更改枚举描述[重复]
【发布时间】:2016-06-27 20:34:28
【问题描述】:

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

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
}

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

【问题讨论】:

  • 您可以添加一个字典(如果需要绑定,则可观察),其中枚举值作为键,描述作为值,然后改用它。如果是本地化,您可以使用属性关联一个键字符串,然后在您当前的本地化上下文中查找它。
  • 这就是我正在做的事情 ;)

标签: c# wpf enums


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-04
      • 1970-01-01
      • 2011-05-21
      • 2013-03-12
      • 2015-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多