.net-3.5 - .Net 的 AppSettingsReader 与 ConfigurationManager 在读取应用程序配置设置方面的优势

标签 .net-3.5 type-safety system.configuration

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

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

从内部来看,AppSettingReader 似乎更类型安全,但它的用法似乎更冗长。如果我正在检索的应用设置是众所周知的并且相当静态,那么使用 AppSettingsReader 有什么好处吗?

最佳答案

并不真地。 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,但真正的答案是 'wahtever 使你的船漂浮'。

关于.net-3.5 - .Net 的 AppSettingsReader 与 ConfigurationManager 在读取应用程序配置设置方面的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3497768/

相关文章:

c# - 在您的单元测试项目中引用 System.Windows.Form 是一种不好的做法吗?

java - 声明具有两个接口(interface)的泛型类型参数时如何避免不必要的转换

c++ - 如何设计一个可序列化的类,使得任何非序列化的属性都会导致编译时错误?

.net - 下次如何加载动态创建的设置属性?

.net - 用于 MonoTouch 的 Log4Net

c# - TcpClient.Connect 说 "A connection attempt failed because the connected party..."

c# - IE9 WebBrowser 控件是否支持 IE9 的所有功能,包括 SVG?

c# - 使用 LINQ 将 List<U> 转换为 List<T>

haskell - Int vs Word 常用吗?

service - 我在 Windows 服务中收到 system.configuration.settingspropertynotfoundexception 错误