サードパーティ アプリケーションと相互運用するアプリケーションを作成しています。このアプリケーションは、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年になったので、今はそうあるべきです)、私のコードは壊れます。
これから抜け出す別の方法はありますか?