Я пишу систему конфигурации, в которой app.config файл динамично создается из различных фрагментов конфигурации, распределенных через несколько местоположений. Система в настоящее время работает следующим образом:
Мы хотели бы отодвинуть от этого несколько подходов AppDomain; это добавляет слой сложности, особенно когда дело доходит до неуправляемых библиотек и другого унаследованного кода.
В перемещении в один AppDomain рабочий процесс изменился бы на:
Кажется, что кэши ConfigurationManager разделяют в памяти. Так, например, если бы я считал AppSettings перед шагом № 3, то я должен звонить: ConfigurationManager.RefreshSection("appSettings");
На самом деле я должен удостовериться, что любой раздел, который использовался bootstrapper, обновляется.
Я могу выполнить итерации по всем разделам конфигурации в новом файле конфигурации, и сила обновляют их, но, это вынуждает менеджер конфигурации загрузить любые блоки, на которые ссылаются в файле конфигурации. Я хотел бы задержать это, если это возможно. Если там способ делать недействительным то, что ConfigurationManager в настоящее время имеет в памяти?