9

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

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

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

4

1 回答 1

7

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

于 2011-11-17T10:53:54.077 回答