在C#中运行时填充/更新枚举值

sia*_*sia 8 c# enums dynamic

我有Windows应用程序在哪里我需要通过读取名为"Controls.txt"的文本文件在运行时填充枚举值. 作为限制,我不打算使用字典.以下是枚举MyControls中可用的默认值.我只能使用枚举.

public enum MyControls
{
   Button1 = 0,
   Button2 = 1,
   Button3 = 2,
}
Run Code Online (Sandbox Code Playgroud)

如果Controls.txt文件可用,那么枚举的内容应该改变

public enum MyControls
{
   btn1 = 0,
   btn2 = 1,
   btn3 = 2,
}
Run Code Online (Sandbox Code Playgroud)

我该如何实现这一目标.我还在运行时遇到了创建/修改枚举的链接,但无法理解.

SKl*_*ous 5

我强烈认为您正在尝试解决错误的问题。enum 的值是类型安全的。我不认为动态填充它是一个好主意。真正有用的是编译之前用文本文件(例如)填充枚举。您可以使用 VS 中的文本模板来执行此操作。

你可以在我的博客文章中找到一个例子:http : //skleanthous.azurewebsites.net/post/2014/05/21/Creating-enums-from-the-database-and-using-them-in-Entity-framework -5 及以后的模型优先

尽管我的示例从数据库加载,但将其更改为从文本文件加载应该是微不足道的。