Asp Mvc读取多个appSettings

时间:2014-11-28 16:07:18

标签: asp.net asp.net-mvc configuration

我必须在MVC 5应用程序的web.config中配置值列表。 有没有办法读取多个appSettings值?例如,获取具有一些前缀的所有内容。

<appSettings>
    <add key="mylist_1" value="val1" />
    <add key="mylist_2" value="val2" />
    <add key="mylist_3" value="val3" />
    <add key="mylist_4" value="val4" />

    <add key="otherlist_1" value="val1" />
    <add key="otherlist_2" value="val2" />
    <add key="otherlist_3" value="val3" />
    <add key="otherlist_4" value="val4" />
</appSettings>

我必须得到mylist_1otherlist_1。 简单的选择是将所有值放在一个键下,由一些char分隔,并在代码中拆分字符串。

2 个答案:

答案 0 :(得分:3)

使用System.Configuration.ConfigurationManager.AppSettings将为您提供所有设置,然后您可以从集合中轻松过滤出您需要的设置。

var keys = ConfigurationManager
    .AppSettings
    .AllKeys
    .Where(k => k.StartsWith("xxx"));

var values = keys
    .Select(k => new KeyValuePair<string, string>
                         (k, ConfigurationManager.AppSettings[k]));

现在你可以看到所有的键/值:

foreach (var kvp in values)
{
    var key = kvp.Key;
    var val = kvp.Value;
}

确保您有System.Configuration的项目引用和相应的using System.Configuration;声明。

答案 1 :(得分:1)

 var mylistValues =  ConfigurationManager.AppSettings.AllKeys.Where(p => p.StartsWith("mylist_")).Select(p => ConfigurationManager.AppSettings[p]).ToList();