Преимущества AppSettingsReader .Net по сравнению с ConfigurationManager для чтения параметров конфигурации приложения - PullRequest
7 голосов
/ 17 августа 2010

Есть ли существенная разница между классом AppSettingsReader и членом AppSettings класса ConfigurationManager в .Net 3.5?

Я строю некоторый устаревший код, а предыдущий разработчик использовал AppSettingsReader.GetValue (),в то время как я более склонен к использованию ConfigurationManager.AppSettings.Get ().

Глядя на внутренние компоненты, AppSettingReader кажется более безопасным, но его использование кажется более многословным.Если настройки приложения, которые я получаю, хорошо известны и довольно статичны, есть ли какое-то преимущество в использовании AppSettingsReader?

1 Ответ

6 голосов
/ 17 ноября 2011

Не совсем. Внутренне AppSettingsReader только что использовал ConfigurationManager.AppSettings.

По сути, существует лишь небольшая путаница вокруг проверки того, что она существует, проверки того, что происходит, и т. Д.

Одна вещь состоит в том, что он будет выдавать исключение, когда в 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 }));
       }

Я думаю, что большинство людей просто будут использовать ConfigurationManager, но реальный ответ - «кто плавает на твоей лодке».

...