Lire des entiers depuis AppSettings encore et encore
Certains, je fais beaucoup de est lire des nombres entiers de AppSettings. Quelle est la meilleure façon de le faire?
Plutôt que de faire ça à chaque fois:
int page_size;
if (int.TryParse( ConfigurationManager.AppSettings["PAGE_SIZE"], out page_size){
}
Je suis en train de penser à une méthode dans mon Helpers
classe comme ceci:
int GetSettingInt(string key) {
int i;
return int.TryParse(ConfigurationManager.AppSettings[key], out i) ? i : -1;
}
mais c'est juste pour enregistrer des séquences de touches.
Idéalement, j'aimerais les mettre tous dans une sorte de structure que je pourrais utiliser intellisense avec, donc je n'en finissent pas avec les erreurs d'exécution, mais je ne sais pas comment je serais à l'approche de ce... ou si c'est encore possible.
Ce qui est une des meilleures pratiques de la façon d'obtenir et de lecture des nombres entiers à partir de la section AppSettings du Web.Config?
UNE CHOSE DE PLUS...
ne serait-ce pas une bonne idée de ce que readonly
?
readonly int pageSize = Helpers.GetSettingInt("PAGE_SIZE")
ne semble pas fonctionner.
source d'informationauteur Armstrongest
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une réponse à mon problème. Il implique un travail supplémentaire au premier abord, mais à la fin, il permettra de réduire les erreurs.
Il est trouvé à la Scott Allen blog OdeToCode et voici mon oeuvre:
Créer une classe statique appelé
Config
Avantage de ce sont de trois ordres:
Si quelqu'un modifie le AppSetting Clé, il va casser, mais je peux gérer cela, que ces valeurs ne sont pas modifiées et que le rendement est meilleur qu'un
TryParse
et il peut être fixé en un seul endroit.La solution est si simple... je ne sais pas pourquoi je n'avais pas pensé à ça avant. Appelez les valeurs comme suit:
Yay!
Prendre un coup d'oeil à T4Config. Je vais générer une interface et la mise en œuvre concrète de votre appsettings et connectionstringsections de vous web/app config à l'aide de Lazyloading des valeurs indiquées dans le bon de types de données. Il utilise un simple modèle T4 pour générer automatiquement des choses pour vous.
Pour éviter de créer une classe de bicyclette vous pourriez utiliser;