これはインターネットでよく聞かれるようですが、これまでのところ私の研究では解決策が得られていません。(そして、少なくとも今のところ、私は解決策として「それはできない」を受け入れていません。)
最も簡単な説明では、私がやろうとしているのは、.NETクラスライブラリプロジェクトに構成ファイルを作成することです。このファイルは、それを参照するすべてのアプリケーションのそのクラスライブラリで使用できます。私のセットアップは、いくつかのドメインロジックを共有する3つのWCFサービスに簡略化できます。彼らが共有するものの1つは、ロガーの注入された依存性です。この場合、log4netを使用してロガー(このライブラリーが注入されるもの)を実装する別のライブラリーがあります。
このセットアップでは、3つのサービスのそれぞれに独自の構成ファイルがあり、それらの構成ファイルのそれぞれがlog4netを構成する必要があります。私がやろうとしているのは、log4netを別のライブラリに完全に抽象化して、これら3つのサービス(および将来のサービス/アプリケーション)がその構成を実行する必要がないようにすることです。それらはすべて同じように構成されるので、私はむしろそれを1つの場所に配置したいと思います。
これまでのところ、ライブラリにローカライズされたappsetttings(キー/値ペア)の構成ファイルを許可するコードを見つけることができ、それにアクセスできます。しかし、私はより完全な設定ファイルのアプローチを探しています。Log4netには、キーと値のペア以上のカスタム構成セクションがあります。(他の構成セクションも、クライアントアプリケーションがWCFサービスに接続するために使用する共通ライブラリのsystem.serviceModelセクションなど、複数のアプリケーションで使用されます)。
これは意味がありますか?誰かが以前にこの種のことの解決策を思いついたことがありますか?