Измените конфигурацию WebHost после сборки, чтобы добавить содержимое вновь добавленных файлов. - PullRequest
0 голосов
/ 08 ноября 2018

Я хочу добавить поля в IConfiguration, которую я дал моему WebHost во время его выполнения, а не только при запуске.

У меня есть несколько файлов, каждый из которых дает мне параметры соединения для отдельной базы данных. При запуске я загружаю эти файлы в конструктор конфигурации, чтобы использовать эту информацию для подключения к базе данных, указанной в запросе, отправленном в службу.

Но я хочу иметь возможность реагировать, если мне дают новые файлы во время выполнения. Поэтому я настроил FileSystemWatcher для просмотра папки, в которой могут появиться эти новые файлы. Я попытался прочитать новые файлы и добавить пару ключ / значение в конфигурацию, но, похоже, он не регистрирует изменение вне локального контекста:

IConfiguration _config;

[...]

foreach (KeyValuePair<string, string> entry in readFile)
{
    _config[entry.Key] = entry.Value;
    Console.WriteLine(_config[entry.Key]);
}

Это меняет содержимое _config в локальном контексте (Console.WriteLine(_config[entry.Key]) показывает правильный результат). Но если я попытаюсь прочитать его извне функции (например, в контроллере API), которая обрабатывает событие «обнаружен новый файл», я получу только пустую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...