У меня есть приложение 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
- Правильный ли подход?
- Будет ли
OpenExeConfiguration
загружать окончательную конфигурацию, созданную путем слияния exe.config и другого ссылочного файла конфигурации?
- Как мне достичь всего?
Примечание. Я хочу использовать это приложение Windows для установки в качестве службы Windows. Я пытаюсь прочитать конфигурацию в классе ServiceInstaller
(класс, который наследует ServiceInstaller
), чтобы сведения, такие как имя службы, указанные в конфигурации службы, были доступны для installutil
. Для этого мне нужно использовать отражение, чтобы получить точную конфигурацию сервиса.