2

サービスファイルを使用したWCFサービスがあります-Serivce.svc ここでは、を使用して着信ヘッダーを読み取ることができますWebOperationContext.Current

サービス ファイルのコードは、他の呼び出しを行うデータ アクセス ユーティリティ層にアクセスします。渡されたヘッダーに基づいて、データ アクセス レイヤーで何らかの作業を行う必要があります。

しかし、ここにWebOperationContext.Currentありnullます。

どうすればこれを回避できますか?

4

1 に答える 1

3

あなたの質問から、あなたの「データ アクセス ユーティリティ レイヤー」は、ヘッダーを介してサービスに渡された情報に依存しているようです。簡単にテストできるように、できればインターフェイスを介してこれを明示的にします。このようなもの:

public class DataAccessLayer(IMetaInfoFromHeaders requiredInfo)
{ /* implementation */ }

(代わりに、DAL 内の 1 つまたはいくつかのメソッドの引数にすることもできますがIMetaInfoFromHeaders、それがより良いと思われる場合は、詳細に依存します。)

サービスはメッセージの処理を担当します。ヘッダーから情報を抽出し、 を実装するオブジェクトを使用して DAL に渡す必要がありますIMetaInfoFromHeaders

結論: DAL を WebOperationContext に依存させないでください。

于 2012-09-20T11:16:55.387 に答える