我想做这样的事情:
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");
我可以以任何方式接受类似的行为吗?
谢谢!
答案 0 :(得分:2)
答案 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" />
如果您确实需要,可以在代码中将其转换为代码中的嵌套字典,而不需要太多努力。