【问题标题】:Save Dictionary in application settings在应用程序设置中保存字典
【发布时间】:2011-10-22 10:36:54
【问题描述】:

我想做这样的事情:

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>

我的.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");

我会以任何方式收到类似的行为吗?

谢谢!

【问题讨论】:

    标签: c# application-settings


    【解决方案1】:

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

    【讨论】:

    • 而且我不需要在c#代码中解析app.config的xml?
    【解决方案2】:

    最简单的答案,不要使用点来“添加命名空间”到键:

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

    如果你真的需要这样的话,你可以毫不费力地将它转换成代码中的嵌套字典。

    【讨论】:

    • 为什么 - 只做一次。并且代码小而简单,从而减少了维护。
    【解决方案3】:

    使用System.Configuration.NameValueSectionHandlerUnder this link找到内置解决方案,谢谢大家!

    【讨论】:

      猜你喜欢
      • 2015-07-19
      • 2016-06-10
      • 2010-12-21
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 2013-06-19
      • 2017-07-14
      • 1970-01-01
      相关资源
      最近更新 更多