2 votes

Des appels fortement typés dans le web.config sans dupliquer les noms de propriétés ?

J'ai cherché la réponse ici. Je suis désolé si cette question a déjà été posée (car je soupçonne que c'est le cas).

Résumé : Comment puis-je avoir des appels fortement typés dans mon web.config sans dupliquer les noms de propriétés ?


Détails : Dans mon code, j'essaie de minimiser l'utilisation des chaînes de caractères, et je n'aime pas définir quelque chose deux fois.

En complément de ces deux volontés, je limite l'utilisation de AppSettings (et de ses chaînes) à une seule classe, à laquelle je fais référence tout au long du projet. La classe AppSettings expose des propriétés publiques :

    12   public static string DateFormatString {
    13       get {
    14           return ConfigurationManager.AppSettings["DateFormatString"];
    15       }
    16   }

Comment puis-je conserver cette classe et éviter la duplication (lignes 12 & 14) du nom de la propriété ?

Sinon, quelle autre solution pouvez-vous recommander ?

1voto

John Rasch Points 28874

Construisez votre propre ConfigurationSection avec le Concepteur de la section de configuration de cette façon, vous n'avez pas besoin d'utiliser AppSettings du tout ... mais vous aurez votre propre collection de paramètres qui auront même Intellisense dans le web.config fichier.

1voto

cedd Points 241

J'ai écrit un paquet nuget qui fait cela (entre autres). Le site article de blog d'accompagnement entre dans les détails, mais cet extrait simplifié montre l'essentiel de ce qui est lié à votre question.

public string DateFormatString =>
    ConfigurationManager.AppSettings[MethodBase.GetCurrentMethod().Name.Replace("get_", "")];

0voto

mcintyre321 Points 5393

Ce projet fait brillamment le travail, dans le cadre d'une compilation standard. http://www.codeproject.com/KB/cs/genuilder.aspx - pas de ficelles magiques du tout

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X