Маппинг переменных из 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");

Лучше всего, конечно, изменить имена ключей в конфиге, чтобы они совпадали с именами свойств в классе.

→ Ссылка