2

IIS でホストされている複数の WCF サービスを持つアプリケーションで、依存関係をインスタンス化するために MEF を使用したいと考えています。さまざまなサービスは共有コンポーネントに依存しており、MEF にこれらのインスタンス化と注入を管理してもらいたいと考えています。

作曲はどこで行えばいいですか?最初は、IInstanceProvider に CompositionContainer を含めることを考えていましたが、そのコンテナーは単一のエンドポイントのみを提供し、それが管理するインスタンスは他のエンドポイントと共有されないことに気付きました。同様に、ServiceHost に CompositionContainer がある場合 - これは異なるサービス間で共有されません。

この分析で私は正しいですか?アプリケーション レベルでシングルトンとして CompositionContainer を持つ唯一のソリューションはありますか?

2 番目の質問は、サービスが WCF によってインスタンス化されるとき (新しいユーザー セッションが開始されたときなど)、その依存関係をどのように提供できますか? CompositionContainer を再構成する必要がありますか? それは、すでに実行中の他の Service インスタンスに影響しませんか?

誰かがこの概念のコード サンプルを共有できますか? どうもありがとう!

4

3 に答える 3

0

WCF サービスを構成可能にするという要件に何度も遭遇しましたが、カスタム IInstanceProvider を使用する場所を特定したアプローチがそれを解決する方法です。カスタム インスタンス プロバイダーを作成するだけでなく、サービス動作とカスタム サービス ホストも必要です。

コード サンプルに関しては、私のブログで私のアプローチを文書化しました: http://www.timjroberts.com/2011/08/wcf-services-with-mef/

お役に立てれば。

于 2011-08-18T11:51:35.750 に答える
0

「インジェクション」という用語を使用しましたが、要件に基づいて、代わりに IoC コンテナー (Spring、Windsor、Unity など) を使用することを実際に検討することをお勧めします。これにより、柔軟性がさらに向上します。これにはすでにいくつかの例があります:

http://avingtonsolutions.com/blog/post/2008/08/02/Uisng-Uni​​ty-with-a-WCF-Service.aspx

于 2009-06-10T18:59:05.793 に答える