.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/