.Net的AppSettingsReader与ConfigurationManager的优点,用于读取应用程序配置设置

cor*_*ori 7 system.configuration type-safety .net-3.5

AppSettingsReader类与.Net 3.5中ConfigurationManager类的AppSettings成员之间是否存在实质性差异?

我正在构建一些遗留代码,而以前的开发人员使用AppSettingsReader.GetValue(),而我更倾向于使用ConfigurationManager.AppSettings.Get().

看看内部,AppSettingReader似乎更安全,但它的用法似乎稍微冗长.如果我正在检索的应用程序设置众所周知并且相当静态,那么使用AppSettingsReader是否有任何好处?

Dav*_*ker 6

并不是的.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 }));
       }
Run Code Online (Sandbox Code Playgroud)

我认为大多数人只会使用ConfigurationManager,但真正的答案是'wahtever浮动你的船'.