0

ソリューション内に複数のプロジェクトがあります。私は、多くの WCF サービス参照 (WCF サービスの実装ではなく参照を保持する) の参照を保持することに専念しているプロジェクトを持っています。このプロジェクトを「GlobalWebServices」と呼びましょう。その後、この GlobalWebServices プロジェクトを参照する実行可能なアプリケーションが多数あります。これらのアプリケーションを実行し、参照 Web サービスを呼び出そうとすると、呼び出したい ServiceReferences の構成の詳細が自然に失われます。構成設定は、クラス ライブラリ プロジェクト - 'GlobalWebServices' に属しています。

これらの ServiceReference バインディングの詳細を保存する最良の方法は何ですか? 実行中のアプリケーションの .config ファイルにそれぞれをコピーしたくありません。情報をレプリケートしているためです。「GlobalWebServices」アプリケーションで ServiceReference バインディングをハードコーディングしたくありません。これは、各サービスのバインディング接続情報を既に生成しているためです (まあ... Visual Studio が親切にやってくれましたが、それでも )。理想的には: GlobalWebServices ライブラリが、ビルド時にバインディング情報 (現在は app.config に格納されている) をクラス ライブラリに自動的に含めるようにしたいと考えています。

これに対するベストプラクティスソリューションは何ですか?

4

1 に答える 1

1

configSectionを使用して、web.config のさまざまな部分を分離できます。

より良い答えがあるかもしれませんが、私の最初の考えは、クラス ライブラリ プロジェクトに構成ファイルを含めることです。構成ファイルのプロパティを「コンテンツ」と「新しい場合はコピー」に設定します。これにより、ソース管理のために 1 つの場所に配置できます。ただし、このオプションの欠点は、展開すると、いくつかの異なる場所に配置されることですが、構成ファイルを使用するアプリケーションごとに構成を変える必要がある場合にも適しています。

サービスをプログラムで構成し、その構成をファイルに書き出すことが可能であることは知っています。それは、別の方法で別の XML ファイルを用意し、app.config 自体ではなく、そこからバインディングなどをロードできることを意味すると思います。

于 2012-05-01T14:57:51.820 に答える