Как загрузить исполняемую конфигурацию, которая распределена по нескольким конфигурационным файлам?

#c# #reflection #app-config #configurationmanager #system.reflection

#c# #отражение #app-config #configurationmanager #system.reflection

Вопрос:

У меня есть приложение Windows под названием TechReader . Его конфигурационный файл TechReader.exe.config . Некоторые части конфигурации хранятся в других конфигурационных файлах. Итак, я ссылаюсь на этот конфигурационный файл из раздела конфигурации, созданного в exe.config.

  <TechReader.ProviderConfiguration file="localProvider.config"/>
  

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

 Assembly techReaderAssembly = Assembly.GetAssembly(typeof(TechReaderStarter));
ConfigurationManager.OpenExeConfiguration(techReaderAssembly .Location);
  

TechReaderStarter класс определен в проекте, результатом которого является приложение Windows, а не библиотека.

Когда я использую приведенный выше код, я получаю TargetInvocationException и ConfigurationErrorsException

  1. Правильный ли подход?
  2. OpenExeConfiguration Загрузится ли окончательная конфигурация, созданная путем объединения exe.config и другого файла конфигурации, на который ссылается ссылка?
  3. Как я могу добиться этого?

Примечание: я хочу использовать это приложение Windows для установки в качестве службы Windows. Я пытаюсь прочитать конфигурацию в ServiceInstaller классе (классе, который наследуется ServiceInstaller ), чтобы такие детали, как имя службы, упомянутое в конфигурации службы, были доступны installutil . Для этого я должен использовать отражение, чтобы получить точную конфигурацию сервиса.