サードパーティ アプリケーションと相互運用するアプリケーションを作成しています。このアプリケーションは、DLL のメソッドを介して開発者に API を公開します。少し前に、このアプリのベンダーは独自の .NET コンポーネントをプログラムに統合し始めました。その際、コンポーネントは を使用しConfigurationManagerて実行時に設定を取得する必要があると判断しました。
これが意味すること: 彼らのプログラム はfoo.exeを呼び出しfooengine.dll、 から設定を読み取りますfoo.exe.config。私のプログラムbar.exeも を呼び出しfooengine.dll、 から設定を読み取りますbar.exe.config。
まあ、それは単純に間違っています。しかし、どうすれば修正できますか?
foo.exe.config簡単な回避策は、の設定を に複製することbar.exe.configです。それはうまくいきますが、それはばかげています。これは、管理上の観点から、特定の設定を N 個の異なるファイルで維持する必要があることを意味します。それは遅かれ早かれ失敗するでしょう。
構成ファイルconfigSourceのセクションに属性を入れてみました。appSettings(たまたま、私はapplicationSettingsセクションを自分の設定に使用しており、彼らはappSettingsセクションを彼らの設定に使用しているので、別のファイルからそのセクションを取得するだけで十分です。ConfigurationManager)のパスは、プログラムのディレクトリconfigSourceに対して相対的であるだけでなく、その下にもあります。
設定ファイルを物理的に読み取り、自分で設定できますXmlDocument。しかし今、私は自分のコードをそれらの実装に密接に結び付けています。applicationSettings彼らが設定をセクションに移動する新しいリリースを出すと(2009年になったので、今はそうあるべきです)、私のコードは壊れます。
これから抜け出す別の方法はありますか?