3

サービス ロケーターを使用して、WCF サービスで使用されるクラスの具体的なインスタンスを保持しています。ServiceLocator を渡すのではなく、すべてのクラスからアクセスできるように静的にすることにしました。サービス ロケーターは、WCF サービスが開始されたときに設定され、いくつかのパラメーターに応じて、さまざまな具象実装が設定されます。

私の問題は、別の呼び出しが完了する前に WCF サービスへの呼び出しが行われた場合、(私が思うに) ServiceLocator に不適切な実装が取り込まれることです。

サービス ロケータをクラスで使用できるようにし、別のスレッドや WCF サービスの呼び出しで再利用しないようにする方法はありますか?

4

1 に答える 1

2

Service Locator とその基盤となる実装について、いくつかの詳細を提供します。私が読んだことから、それはあなた自身のものであることを理解しています。

私の個人的なアドバイスは、WCF サービスの場合は Service Locator を使用しないことです。これは、WCF が依存関係の挿入を可能にするいくつかのインターフェイスを公開しているためです。

アンチ パターン サービス ロケータの詳細については、http: //blog.ploeh.dk/2010/02/03/ServiceLocatorIsAnAntiPattern.aspxを参照してください。

使用できる依存性注入に関する多くの OSS プロジェクトがあり、適切な方法でジョブを実行するため、サービス ロケーターを実装しないでください。

WCF サービスで StructureMap を使用した Dependency Injection の正しい実装は次のとおりです: http://lostechies.com/jimmybogard/2008/07/30/integrating-structuremap-with-wcf/

于 2011-06-21T15:41:58.973 に答える