Для теста я создал простое консольное приложение (решение будет использоваться в основном веб-API asp.net).
У меня есть файл конфигурации TestSetting.json с параметром «Копировать всегда» настроено.
Код: Выделить всё
{
"setting1" : "value1"
}
Код: Выделить всё
IConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
IConfigurationRoot configuration = configurationBuilder.AddJsonFile("TestSettings.json",false, reloadOnChange: true).Build();
Console.WriteLine(configuration.GetSection("setting1").Value); // Output: value1
//Change configuration manually in file while console is waiting
Console.ReadKey();
//Changed manually in file Value appears
Console.WriteLine(configuration.GetSection("setting1").Value); // Output: Whatever you have setuped
Console.ReadKey();
configuration.GetSection("setting1").Value = "changed from code";
//Changed in code value appear
Console.WriteLine(configuration.GetSection("setting1").Value); // Output: changed from code
Второе требование заключается в том, что я хочу сохранить некоторую информацию, а точнее время последнего выполнения задачи, которая должна выполняться один раз за установленный период, например . один раз в день, поэтому некоторый цикл проверяет значение последнего времени выполнения и определяет, нужно ли выполнять операцию. Кто-то спросит, будет ли работать то, что у меня есть, но мне также нужно охватить сценарий, когда операция была выполнена и приложение перезапущено (ошибка сервера, перезапуск пользователя и т. д.), и мне нужно сохранить эту информацию таким образом, чтобы я мог чтобы прочитать его после запуска приложения.
Читая пример кода, мы видим, что после изменения параметра 1 в коде мы видим, что этот раздел был изменен при попытке вывести его на консоль.
Код: Выделить всё
configuration.GetSection("setting1").Value = "changed from code";
//Changed in code value appear
Console.WriteLine(configuration.GetSection("setting1").Value); // Output: changed from code
Фактический результат таков: после изменения значения в коде новое значение можно получить во время выполнения, но когда вы перейдете к отладке двоичных файлов, вы увидите, что значение 1 в файле TestSettings.json не было изменено.
Подробнее здесь: https://stackoverflow.com/questions/579 ... t-core-2-2
Мобильная версия