在应用程序设置中保存字典

时间:2011-08-08 14:11:53

标签: c# application-settings

我想做这样的事情:

app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <appSettings>
   <setting1> 
  <add key ="key1" value ="value1"/>
  <add key ="key2" value ="value2"/>
</setting1>
<setting2>
  <add key ="key1" value ="value1"/>
  <add key ="key2" value ="value2"/>
</setting2>

my.cs:

Configuration config =
                    ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var appSettings = config.AppSettings;

Assert.equals(appSettings.Settings["setting1"]["key1"] == "value1");
Assert.equals(appSettings.Settings["setting1"]["key2"] == "value2");
Assert.equals(appSettings.Settings["setting2"]["key1"] == "value1");
Assert.equals(appSettings.Settings["setting2"]["key2"] == "value2");

我可以以任何方式接受类似的行为吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

您可以编写自己的配置部分 - many tutorials周围。

答案 1 :(得分:1)

使用System.Configuration.NameValueSectionHandler发现内置解决方案Under this link谢谢大家!

答案 2 :(得分:0)

最简单的答案,不要使用点来“为密钥添加名称空间”:

<add key="setting1.key1" value="value1" />
<add key="setting1.key2" value="value2" />
<add key="setting2.key1" value="value3" />
<add key="setting2.key2" value="value4" />

如果您确实需要,可以在代码中将其转换为代码中的嵌套字典,而不需要太多努力。