IDisptachMessageInspectorを使用してWCFサービスをインストールしてから、メッセージのコンテキストを変更するBeforeSendReplyメソッドでサービス操作を呼び出します。しかし、私がサービスを呼び出すと、Inspectorが再び実行されます。インスペクターを実行したくない。そのシーンリオを行う方法を知っていますか?
2 に答える
0
メッセージインスペクターの目的は、残りのサービスモデルレイヤーがメッセージを処理する前または後にメッセージを変更できるようにすることです。
操作がすでに呼び出された後にBeforeSendReplyが呼び出され、操作が呼び出される前にAfterReceiveRequestが呼び出されます。
あなたが見ている振る舞いは、あなたのメッセージインスペクターが操作の後に解雇されているということです。次に、別の操作を実行します。これにより、メッセージインスペクターが再度呼び出されます。BeforeSendReplyは、WCFがデフォルトのシリアル化などを使用して生成する際に問題が発生する形式に応答メッセージを操作するためによく使用されます。これにより、探している動作を提供できなくなります。
呼び出す操作を決定するには、通常、IDispatchOperationSelectorを実装します。この拡張ポイントの具体的なアイデアは、まさにあなたが必要としているものになるように見えます
于 2011-06-17T09:52:46.187 に答える
0
答えはIOperationInvokerを実装しています
于 2011-08-16T11:30:43.840 に答える