【问题标题】:Asp Mvc read multiple appSettingsAsp Mvc 读取多个appSettings
【发布时间】:2015-01-27 08:01:29
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    使用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; 声明。

    【讨论】:

      【解决方案2】:
       var mylistValues =  ConfigurationManager.AppSettings.AllKeys.Where(p => p.StartsWith("mylist_")).Select(p => ConfigurationManager.AppSettings[p]).ToList();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-06
        • 2017-03-03
        • 1970-01-01
        • 2015-05-11
        • 1970-01-01
        • 2012-11-19
        • 1970-01-01
        • 2012-10-09
        相关资源
        最近更新 更多