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

时间:2010-08-16 22:03:02

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

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

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

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

1 个答案:

答案 0 :(得分: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 }));
       }

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