Не могу прочитать настройки приложения после обновления - PullRequest
0 голосов
/ 02 февраля 2020

Как работает приложение:

Опция 1 - загрузить itens из настроек приложения. Опция 2 - Включить новый элемент

Если выбрать «Опция 1», показать itens. Это работает. Итак ... я включаю новый элемент, используя «Вариант 2». Это работает. Но если я выберу «Вариант 1», чтобы отобразить его, список будет пуст.

Мои настройки приложений

  "app": {
    "hosts": [
      {
        "ip": "127.0.0.1",
        "hostname": "NotFound"
      },
      {
        "ip": "127.0.0.1",
        "hostname": "MyProject"
      },
      {
        "ip": "127.0.0.1",
        "hostname": "AnotherProject.dev"
      }
    ]
  }
}

Сделать привязку

AppSettingsModel appSettings = new AppSettingsModel();
Configuration.Bind("app", appSettings);

Я настраиваю настройки приложений в reloadOnChange

static IConfiguration LoadConfiguration() => 
            new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json", false, true)
                .Build();

Обновление настроек приложения

var appSettings = new AppSettingsModel();
                        var appSettings = new AppSettingsModel();
Configuration.Bind("app", appSettings);

appSettings.Hosts.Add(new HostsModel()
{ 
    Ip = "102.54.94.97",
    Hostname = "rhino.acme.com" 
});

var jsonSerializerOptions = new JsonSerializerOptions()
{
    PropertyNamingPolicy = JsonNamingPolicy.CamelCase
};

var resultC = JsonSerializer.Serialize(appSettings, jsonSerializerOptions);

File.WriteAllText("appsettings.json", resultC);

Мой код -> https://github.com/tiago-aguiar-moreira/ManagerHosts

1 Ответ

0 голосов
/ 04 февраля 2020

Я входил в раздел в методе Bind, но в моем случае это было не нужно.

До

Configuration.Bind ("hosts", appSettings);

После

Configuration.Bind (appSettings);

...