Есть ли способ избежать двоеточия в ключе словаря appsetting.json в конфигурации aspnetcore? - PullRequest
0 голосов
/ 11 июня 2018

У меня есть этот словарь провайдера в appsetting.json

  "AppSettings": {
      "Providers": {
         "http://localhost:5001": "Provider1",
         "http://localhost:5002": "Provider2"
      },
      "ArrayWorks": [
         "http://localhost:5001",
         "http://localhost:5002"
      ],
      "SoDoesColonInDictionaryValue": {
         "Provider1": "http://localhost:5001",
         "Provider2": "http://localhost:5002"
      }
   }

И следующее исключение, потому что в словарном ключе есть двоеточие.

Configuration.GetSection("AppSettings").Get<AppSettings>()

Однакодвоеточие прекрасно работает как значение словаря или массив, но не словарь ключа.Я прочитал, что двоеточие имеет особое значение в конфигурации, но, похоже, нет способа убежать.Зачем?

Редактировать:

public class AppSettings
{
    public string ApplicationName { get; set; }
    public IDictionary<string, string> Providers { get; set; }
}

При отладке Configuration.GetSection ("AppSettings") вы получаете это

Key    AppSettings:Providers:http://localhost:5000
Value  Provider1

Это должно было быть что-то вроде этого

Key     AppSettings:Providers:http_//localhost_5000

Но, похоже, нет способа контролировать, как конфигурация обрабатывает :::

...