从app.config中读取所有键值c#

时间:2015-06-01 11:59:14

标签: c# winforms app-config

您好我有以下app.config文件

<?xml version="1.0" encoding="utf-8"?>
 <configuration>
<appSettings>
<add key="DayTime" value="08-20" />
<add key="NightTime" value="20-08" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
<add key="GridMode" value="1"/> 
</appSettings>

我需要一次性读取所有键并将其存储在Dictionary之类的位置。

我尝试过以下代码但是给了null

,例外Cannot convert Keyvalueinternalcollection to hashtable

var section = ConfigurationManager.GetSection("appSettings") as Hashtable;

如何使用其值读取所有键?

4 个答案:

答案 0 :(得分:2)

哈希表版本。

Hashtable table = new Hashtable((from key in System.Configuration.ConfigurationManager.AppSettings.Keys.Cast<string>()
                                 let value= System.Configuration.ConfigurationManager.AppSettings[key]
                                 select new { key, value }).ToDictionary(x => x.key, x => x.value));

评论其他答案

System.Configuration.ConfigurationManager.AppSettings是预定义的“appSettings”部分,请使用它。

答案 1 :(得分:0)

不要转发Hashtable而是转发IEnumerable

var section = ConfigurationManager.GetSection("appSettings");

foreach (var kvp in section as IEnumerable)
{
    //TODO
}

答案 2 :(得分:0)

我认为你可以这样做:

var loc=(NameValueCollection)ConfigurationSettings.GetSection("appSettings");
var dic=new Dictionary<string,string>();
foreach (var element in loc.AllKeys)
{
    dic.Add(element, loc[k]);
}

答案 3 :(得分:0)

var section = ConfigurationManager.GetSection("appSettings")

应该足够了。