字典相当于Config

时间:2014-02-03 12:33:57

标签: c# xml dictionary configuration

我有一个.config文件,其中包含几个值。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Element1" value="true"/>
    <add key="Element2" value="true"/>
    <add key="Element3" value="false"/>
  </appSettings>
</configuration>  

我想将它们写入Dictionary结构。有办法吗?

如果我有多个配置文件怎么办?如何管理相关文件?

2 个答案:

答案 0 :(得分:2)

您可以使用Linq to Xml

var settings = XDocument.Load(path_to_config)
                        .Root.Element("appSettings").Elements("add")
                        .ToDictionary(a => (string)a.Attribute("key"),
                                      a => (string)a.Attribute("value"));

但请注意,<appSettings>元素也可以包含<remove><clear>子元素。这是不容易治疗的。所以,我会使用ConfigurationManager类,它可以让您对应用程序设置进行类似字典的访问:

string element2 = ConfigurationManager.AppSettings["Element2"];

甚至

var settings = ConfigurationManager.AppSettings; // NameValueCollection
string element3 = settings["Element3"];

答案 1 :(得分:2)

我想这就是你所需要的:

ConfigurationManager.AppSettings.AllKeys.ToDictionary(k => k, k => ConfigurationManager.AppSettings[k]);