我必须在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_1
或otherlist_1
。
简单的选择是将所有值放在一个键下,由一些char分隔,并在代码中拆分字符串。
答案 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();