C# 通过用户输入扩展枚举

C# 通过用户输入扩展枚举,c#,.net,asp.net,enums,C#,.net,Asp.net,Enums,我有下面的枚举,用于我的一个过滤器,非常适合我的对象模型 public enum ColorGroups { White = 1, Brown = 2, Red = 3, Black = 4 } 我关心的是,将来当客户希望为该系列添加另一种颜色时,我如何扩展该系列。我希望系统是完全动态的,并且不需要技术人员更改这些内容的代码。如果您希望数据可以由用户编辑,则可能不适合使用枚举。枚举是编译时单位,因此需要开发人员(或一些黑客代码生成) 相反,考虑使用一个数据库表来

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

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

我关心的是,将来当客户希望为该系列添加另一种颜色时,我如何扩展该系列。我希望系统是完全动态的,并且不需要技术人员更改这些内容的代码。

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

相反,考虑使用一个数据库表来对这些数据进行填充,预先填充您的项(也许用一个“系统”列来控制哪些是用户定义的vs系统所需要的)。然后,更改只是对表的插入(等)


当然,您可以使用任何其他存储机制—例如,配置文件中的分隔字符串—但我猜您可能希望在系统中的某个位置有一个数据库?

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

相反,考虑使用一个数据库表来对这些数据进行填充,预先填充您的项(也许用一个“系统”列来控制哪些是用户定义的vs系统所需要的)。然后,更改只是对表的插入(等)


当然,您可以使用任何其他存储机制—例如,配置文件中的分隔字符串—但我猜您可能希望在系统中的某个位置有一个数据库?

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

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

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

如果您不想让技术人员参与进行更改,那么“完全动态”和“使用
enum
”是相互排斥的。在这里,数据库或配置文件是更好的选择

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

如果您不想让技术人员参与进行更改,那么“完全动态”和“使用
enum
”是相互排斥的。在这里,数据库或配置文件是更好的选择