通过用户输入扩展枚举

时间:2009-03-28 21:10:26

标签: c# .net asp.net enums

我有以下枚举,我用于我的一个过滤器,非常适合我的对象模型

public enum ColorGroups
{
    White = 1,
    Brown = 2,
    Red = 3,
    Black = 4
}

我担心将来客户想要另一种颜色的集合如何扩展集合。我希望系统是完全动态的,并且不需要技术人员来改变这些事情的代码。

3 个答案:

答案 0 :(得分:4)

如果您希望数据是用户可编辑的,则可能不适合使用枚举。枚举是编译时单元,因此需要开发人员(或一些hacky代码生成)。

相反,请考虑为此数据使用数据库表,预先填充您的项目(并且可能使用“系统”列来控制哪些是用户定义的与系统所需的)。然后更改只是向表中插入(等)。

当然,您可以使用任何其他存储机制 - 例如,配置文件中的分隔字符串 - 但我猜您在系统中某处需要数据库?

答案 1 :(得分:1)

在这种情况下,枚举可能不是正确的工具。最好使用一组配置选项。这些可能位于配置文件,注册表或数据库中,具体取决于您可以使用的内容以及是否希望配置由开发人员或顾问或系统用户承担。

答案 2 :(得分:1)

  

我希望系统完全动态,并且不需要技术人员来改变这些事情的代码。

如果您不希望技术人员参与进行更改,则“完全动态”和“使用enum”是互斥的。数据库或配置文件是更好的选择。