我有一个.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
结构。有办法吗?
如果我有多个配置文件怎么办?如何管理相关文件?
答案 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]);