2009-08-21 5 views

Répondre

4

magasin eux comme statique dans une classe, quelque chose comme ceci:

public static class DbConstants 
{ 
    public static const string CustomersTableName = "CUST"; 
    public static const string ProductsTableName = "PROD"; 
    ... 
} 

Tenir compte de les séparer dans plusieurs classes pour les regrouper logiquement, par exemple une classe pour les constantes DB, une classe pour les messages d'exception, etc.

+0

Est-ce que je ne devrais pas mettre en majuscule toutes les lettres de la variable membre? – burnt1ce

+1

Les conventions de nommage courantes de C# déconseillent: http://msdn.microsoft.com/en-us/library/x2dbyw72(VS.71).aspx Ce cas est couvert dans le "Champ statique en lecture seule" ligne. –

4

Vous incluez une classe statique avec toutes vos constantes.

public static class MyConstants 
{ 
    public const string MyString = "ConstString"; 
    public const int TestInt = 100; 
    // etc... 
} 
+0

Ne devrais-je pas mettre en majuscule toutes les lettres de la variable membre? – burnt1ce

+0

Je trouve LOOK_AT_ME_IM_A_CONSTANT_OOOH particulièrement ennuyeux. Peut-être que vous pourriez l'écrire comme constantNameOfConstant ou quelque chose de similaire. –

+0

Cool merci. Je suis d'accord. – burnt1ce

1

Fichiers XML et utiliser Cache d'application pour améliorer les performances ou vous pouvez utiliser des fichiers de configuration ASP.NET.

+0

L'utilisation d'un fichier XML ne serait-elle pas équivalente à l'utilisation de web.config qui est un fichier XML? – Kelsey

+0

Kelsey: Je pense que ce serait pire, puisque vous devez analyser le Xml vous-même. Avec les fichiers .config vous pouvez éviter cela en utilisant le système de section fourni par .Net. –

+0

sûr. mais en fonction de la structure de données que vous voulez stocker, ça vaut le coup. – Cleiton

1

Cela dépend de leur "constante". S'ils sont vraiment constants, c'est quelque chose qui ne changera jamais, alors une classe statique avec des constantes. Par exemple. le nombre PI, ou peut-être une constante contenant le nom d'un champ dans une table.

Si elles sont plus serveur spécifique, comme les chaînes de connexion, et vous ne voulez pas utiliser le web.config, vous voudrez peut-être vérifier la possibilité d'inclure un nouveau fichier de configuration de web.config

<appSettings file="local.config">...</appSettings> 

Le fichier local.config ne doit alors contenir qu'un élément appSettings. Si le fichier local.config n'existe pas, il sera ignoré. Donc pas d'exceptions. Tout paramètre existant dans local.config et web.config, local.config sera utilisé. Vous pouvez ensuite partager un fichier de configuration Web entre de nombreuses installations et avoir des paramètres locaux remplacés dans le fichier local.config.

Si les constantes sont plus quelque chose qu'un super-utilisateur devrait être capable de modifier à l'exécution, alors une table dans une base de données est ce que je choisirais. Par exemple. un si vous laissez un superutilisateur modifier un mot de passe de tentative de réessai max ou quelque chose.

Questions connexes