Quelle est la meilleure façon pour les classes de récupérer/stocker des constantes sans les obtenir par le biais de web.config ?
Réponses
Trop de publicités?Stockez-les comme statiques dans une classe, quelque chose comme ceci :
public static class DbConstants
{
public static const string CustomersTableName = "CUST";
public static const string ProductsTableName = "PROD";
...
}
Pensez à les séparer en plusieurs classes pour les regrouper logiquement, par exemple une classe pour les constantes de la BD, une classe pour les messages d'exception, etc.
Cela dépend de leur degré de "constance". Si elles sont vraiment constantes, c'est-à-dire quelque chose qui ne changera jamais, alors une classe statique contenant des constantes. Par exemple, le nombre PI, ou peut-être une constante contenant le nom d'un champ dans une table.
S'ils sont plus spécifiques au serveur, comme les chaînes de connexion, et que vous ne souhaitez pas utiliser le web.config, vous pouvez envisager d'inclure un nouveau fichier de configuration à partir du web.config.
<appSettings file="local.config">...</appSettings>
Le fichier local.config ne devrait alors contenir qu'un élément appSettings. Si le fichier local.config n'existe pas, il sera ignoré. Donc pas d'exception. Tout paramètre qui existe à la fois dans le fichier local.config et dans le fichier web.config, le fichier local.config sera utilisé. Vous pouvez donc partager un fichier de configuration web entre plusieurs installations, et faire en sorte que les paramètres locaux soient remplacés par le fichier local.config.
Si les constantes sont plutôt quelque chose qu'un superutilisateur doit pouvoir modifier au moment de l'exécution, alors je choisirais une table dans une base de données. Par exemple, si vous permettez à un superutilisateur de modifier le nombre maximum de tentatives de réessai du mot de passe ou quelque chose comme ça.