2010-08-16 29 views
4

Existe-t-il une différence substantielle entre la classe AppSettingsReader et le membre AppSettings de la classe ConfigurationManager dans .Net 3.5?Avantages de AppSettingsReader vs ConfigurationManager de .Net pour lire les paramètres de configuration de l'application

Je construis du code hérité et un développeur précédent utilisait AppSettingsReader.GetValue(), alors que je suis plus enclin à utiliser ConfigurationManager.AppSettings.Get(). En regardant les internes, AppSettingReader semble être plus de typesafe, mais son utilisation semble légèrement plus prolixe. Si les paramètres de l'application que je recherche sont bien connus et relativement statiques, l'utilisation de AppSettingsReader présente-t-elle des avantages?

Répondre

4

Pas vraiment. En interne, AppSettingsReader vient d'utiliser ConfigurationManager.AppSettings.

Il est fondamentalement juste un peu de peluches autour de vérifier qu'il existe, vérifier que ce qui se passe est ok, etc.

Une chose est cependant qu'il jette une exception quand il n'y a aucun élément dans les AppSettings ..

// From CTOR 
    this.map = ConfigurationManager.AppSettings; 

    .... 
    public object GetValue(string key, Type type) 

     ... 

     string item = this.map[key]; 
     if (item == null) 
     { 
      throw new InvalidOperationException(SR.GetString("AppSettingsReaderNoKey", new object[] { key })); 
     } 

Je pense que la plupart des gens vont simplement utiliser ConfigurationManager mais la vraie réponse est «wahtever flotte votre bateau.