У меня есть этот словарь провайдера в 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
Но, похоже, нет способа контролировать, как конфигурация обрабатывает :::