という 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
- アプローチは正しいですか?
- exe.config
OpenExeConfiguration
と他の参照された構成ファイルをマージすることによって生成された最終構成をロードしますか? - どうすれば達成できますか?
注: この Windows アプリケーションを使用して、Windows サービスとしてインストールしたいと考えています。サービスの構成にServiceInstaller
記載ServiceInstaller
されているサービス名などの詳細がinstallutil
. このためには、リフレクションを使用してサービスの正確な構成を取得する必要があります。