如何将ConfigurationManager.AppSettings与自定义部分一起使用?
我需要使用App.config文件获取“ http://example.com ”。
但目前我正在使用:
string peopleXMLPath = ConfigurationManager.AppSettings["server"];
我无法获得价值。
你能指出我做错了什么吗?
我认为您需要获取配置部分,并访问:
var section = ConfigurationManager.GetSection("server") as NameValueCollection; var value = section["url"];
您还需要更新配置文件:
编辑: 正如CodeCaster在他的回答中提到的 , SingleTagSectionHandler
仅供内部使用。 我认为NameValueSectionHandler
是定义配置节的首选方式。
SingleTagSectionHandler
文档说 :
此API支持.NET Framework基础结构,不能直接在您的代码中使用。
如此处所示,您可以将其检索为HashTable
并访问其条目:
Hashtable serverTag = (Hashtable)ConfigurationManager.GetSection("server"); string serverUrl = (string)serverTag["url"];
string peopleXMLPath = ConfigurationManager.AppSettings["server"];
从app.config文件的appSettings
部分获取值,但是您将值存储在
将值放在appSettings
部分中,如下所示,或从当前位置检索值。
您需要在配置的appSettings部分添加一个键值对。 如下:
您的阅读代码是正确的,但您应该检查是否为null。 如果代码无法读取配置值,则string
变量将为null。
您正在定义配置部分而不是AppSettings
中的值 。 您只需将设置添加到AppSettings
:
... may be some settings here already
自定义配置节通常用于更复杂的配置(例如,每个键的多个值,非字符串值等。
如果要从应用程序设置中获取值,配置文件中的appsetting元素必须具有键。
定义您的服务器值,如下面配置部分所述:
... ... ...
现在执行下面的代码行来获取服务器url:
string peopleXMLPath = ConfigurationManager.AppSettings["server"].ToString();