从app.config中的值创建映射

时间:2010-09-16 16:44:58

标签: c#

目前,在我的C#.cs文件中,我已经声明了一个字典:

Dictionary<string, string> example_map = new Dictionary<string, string>();
option_symbol_map.Add("Key11", "Val1");
option_symbol_map.Add("Key2", "Val2");
option_symbol_map.Add("Key3", "Val3");

我需要将这些键和相应的值移动到app.config文件中,以便根据需要对其进行编辑。

实现这个的最好方法是什么?

我应该这样做:

<add key="Test1" value="Key1,Key2,Key3"/>
<add key="Test2" value="Val1,Val2,Val3"/>

然后在创建字典时同时读取两个键?

或者我应该这样列出:

<add key="test3" value="Key1,Val1,Key2,Val2,Key3,Val3"/>

在这种情况下,如何创建我的地图,选择每个备用对象作为键和值?

2 个答案:

答案 0 :(得分:4)

您可以编写自己的ConfigurationElementCollection类,而不是AppSettings,其类似于:

<yourSection>
   <yourElements>
       <add key="Key1" value="Val1"/>
       <add key="Key2" value="Val2"/>
       <add key="Key3" value="Val3"/>
    </yourElements>      
</yourSection>

这是涵盖最重要部分的article。如果你这样做,那么你不需要知道密钥。

答案 1 :(得分:1)

什么是'TestX'?为什么不使用

<add key="Key1" value="Val1"/>
<add key="Key2" value="Val2"/>
<add key="Key3" value="Val3"/>

完全符合'键/值'定义。然后可以像这样访问它们:

string val1 = ConfigurationManager.AppSettings["Key1"];