0

私は基本的に、多くの外部リソースを使用するプロジェクトの DLL を担当しています。自分のプロジェクト用に、infrastructure.config という名前の構成ファイルが必要です。クライアント プロジェクトは、独自のアプリまたは Web 構成にカット アンド ペーストすることなくプロジェクトにコピーできます。次の提案を試しました:

実行時にデフォルトの app.config を変更する

カスタム セクションを利用する Log4Net を試すまで、このソリューションはうまく機能していました。上記のリンクのコードを使用しようとしたときに、不明な構成セクションを受け取りました。上記のコードなしで同じ構成ファイルを使用すると、正常に動作します。興味深いことに、TransactionScope を使用しようとしたときに爆発しました。そのため、TransactionScope を使用し、構成に configurationSections を含めると、いくつかの組み合わせが失敗しました。助言がありますか?

各クライアント アプリまたは Web サイトに独自の値の独自の構成を持たせたいのですが、infrsatucture.dll には独自の値、カスタム SOAP バインディング、および Log4Net の組み合わせを含めることができる必要があります。

4

1 に答える 1

0

依存性注入が解決に適しているように聞こえます。

構成ファイル (アプリの設定またはセクション) に依存するアプリケーション/dll を作成する代わりに、インターフェイスが動作に必要なものを公開することを強くお勧めします。これらは、他の DLL (log4net) によって公開された外部クラス/インターフェイスにすることも、独自に作成して、他の開発者が必要な抽象/インターフェイス クラスに基づいて具体的なクラスを派生できるようにすることもできます。

于 2012-10-01T19:29:00.970 に答える