Как загрузить исполняемую конфигурацию, которая распределена по нескольким файлам конфигурации? - PullRequest
1 голос
/ 08 апреля 2011

У меня есть приложение 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. Для этого мне нужно использовать отражение, чтобы получить точную конфигурацию сервиса.

...