2014-11-28 3 views
1

Мне нужно настроить список значений в web.config приложения MVC 5. Есть ли способ прочитать несколько значений appSettings? Например, получите все, у кого есть префикс.Asp Mvc читает несколько настроек 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. Простой вариант состоит в том, чтобы поместить все значения под одним ключом, ограниченным некоторым символом и разделить строку в коде.

ответ

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
var mylistValues = ConfigurationManager.AppSettings.AllKeys.Where(p => p.StartsWith("mylist_")).Select(p => ConfigurationManager.AppSettings[p]).ToList(); 
Смежные вопросы