如何将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();