Маппинг переменных из appsettings.json в класс
Я хочу смаппить настройки, описанные в appsettings.json в экземпляр класса настроек. Это легко сделать с помощью Get<T>() или Bind(obj), но есть одна проблема. Имена переменных в appsettings.json записаны в upper case, тогда как имена свойств класса настроек - в PascalCase. Для примера вот содержимое appsettings.json:
{
"FIELD_ONE": "foo",
"FIELD_TWO": "bar"
}
и класс настроек:
public class MySettings
{
public string FieldOne { get; set; }
public string FieldTwo { get; set; }
}
Как заставить .NET правильно и автоматически смаппить эти данные?
Пробовал сделать так, но не помогло
public class MySettings
{
[JsonProperty("FIELD_ONE")]
public string FieldOne { get; set; }
[JsonProperty("FIELD_TWO")]
public string FieldTwo { get; set; }
}
Ответы (1 шт):
Автор решения: Alexander Petrov
→ Ссылка
Автоматически, скорее всего, никак.
Придётся делать вручную:
var mySettings = new MySettings();
var section = configurationRoot.GetSection("MySettings");
mySettings.FieldOne = section.GetValue<string>("FIELD_ONE");
mySettings.FieldTwo = section.GetValue<string>("FIELD_TWO");
Лучше всего, конечно, изменить имена ключей в конфиге, чтобы они совпадали с именами свойств в классе.