2009-03-28 10 views
1

j'ai le dessous ENUM que j'utilise pour un de mes filtres et conviennent bien à mon modèle d'objetExtension énumérations via l'entrée utilisateur

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

Ma préoccupation est à l'avenir lorsqu'un client veut une autre couleur à la collection comment puis-je étendre la collection. Je souhaite que le système soit entièrement dynamique et ne nécessite pas de personne technique pour modifier le code de ces éléments.

Répondre

4

Si vous souhaitez que les données soient modifiables par l'utilisateur, il peut ne pas être approprié d'utiliser une énumération. Les énumérations sont des unités de compilation, donc cela nécessitera un développeur (ou une génération de code hacky). Au lieu de cela, pensez à utiliser une table de base de données pour ces données, pré-remplie avec vos éléments (et éventuellement avec une colonne "Système" pour contrôler celles qui sont définies par l'utilisateur par rapport au système). Alors les changements sont juste des insertions (etc) à la table.

Vous pouvez, bien sûr, utiliser n'importe quel autre mécanisme de stockage - par exemple, une chaîne délimitée dans un fichier de configuration - mais je suppose que vous voulez une base de données quelque part dans le système?

1

Une énumération peut ne pas être le bon outil pour le travail dans ce cas. Vous feriez mieux d'utiliser un ensemble d'options de configuration. Ceux-ci peuvent être dans un fichier de configuration, dans le registre ou dans une base de données, selon ce qui est disponible et si vous voulez que la configuration soit effectuée par un développeur ou un consultant, ou par les utilisateurs du système.

1

Je veux que le système soit entièrement dynamique et ne nécessite pas une personne technique pour modifier le code pour des choses ..

« Entièrement dynamique » et « utiliser un enum » sont mutuellement exclusifs si vous ne voulez pas qu'une personne technique s'implique pour faire des changements. Une base de données ou un fichier de configuration est un meilleur choix ici.

Questions connexes