構成ファイルのカスタム構成セクションにアクセスしようとして非常に苦労しています。
構成ファイルは、プラグインとしてロードされた .dll から読み取られています。Configuration Section Designer VS アドインを使用して、構成と必要なコードを作成しました。
名前空間は「ImportConfiguration」です。ConfigurationSection クラスは「ImportWorkflows」です。アセンブリは ImportEPDMAddin です。
xml:
<configSections>
<section name="importWorkflows" type="ImportConfiguration.ImportWorkflows, ImportEPDMAddin"/>
</configSections>
構成を読み込もうとすると、次のエラーが表示されます。
importWorkflows の構成セクション ハンドラーの作成中にエラーが発生しました: ファイルまたはアセンブリ 'ImportEPDMAddin.dll' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
プラグインをロードするソフトウェアがdllとその依存関係を独自のディレクトリに配置するため、dllは実行可能ファイルと同じディレクトリには存在しません。(私はそれを制御することはできません。)
シングルトン インスタンスのコードを次のように編集しました。
string path = System.Reflection.Assembly.GetCallingAssembly().CodeBase;
path = path.Replace("file:///", "");
System.Configuration.Configuration configuration = System.Configuration.ConfigurationManager.OpenExeConfiguration(path);
return configuration.GetSection(ImportWorkflowsSectionName) as ImportConfiguration.ImportWorkflows;
単純な NameValueFileSectionHandler も使用してみましたが、ファイルまたはアセンブリ 'System' を読み込めないという例外が発生します。
多数のブログ投稿や記事を読んだことがありますが、dll の構成ファイルを読み取ることができるように思えますが、それを機能させることはできません。何か案は?ありがとう。