У меня есть строка в appsettings.json:

    {
  "GeneralSettings": {
    "CompanyIds": "1,2,3,4,5"
  }
}

Как я могу сопоставить его с классом, мне нужно разделить его на список запятой:

public class GeneralSettings
{
    public List<int> CompanyIds { get; set; }
}

Теперь у меня есть:

var generalSettings = new GeneralSettings();  
configuration.GetSection(nameof(GeneralSettings)).Bind(generalSettings);
0
MrChudz 24 Фев 2021 в 13:12

2 ответа

Лучший ответ

Разве у вас не может быть просто массив в вашем файле конфигурации?

{
  "GeneralSettings": {
    "CompanyIds": [1,2,3,4,5]
  }
}
3
Arcord 24 Фев 2021 в 10:16

Вы можете использовать этот код:

 var generalSettings = new GeneralSettings(); 
 var values = _configuration.GetSection(nameof(GeneralSettings) +   ":CompanyIds").Value;
 generalSettings.CompanyIds  = values.Split(",").ToList().ConvertAll(int.Parse);

Или

generalSettings.CompanyIds =  values.Split(",").Select(c=>int.Parse(c)).ToList();
1
Sign 24 Фев 2021 в 11:03