.Net 3.5中的AppSettingsReader类和ConfigurationManager类的AppSettings成员之间是否存在实质性差异?
我正在构建一些遗留代码,之前的开发人员使用AppSettingsReader.GetValue(),而我更倾向于使用ConfigurationManager.AppSettings.Get()。
看看内部,AppSettingReader似乎更安全,但它的用法似乎稍微冗长。如果我正在检索的应用程序设置众所周知并且相当静态,那么使用AppSettingsReader会有什么好处吗?
答案 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漂浮你的船'。