1

要求と応答の両方をWCFRESTサービスに記録する方法を探しています。WCF RESTスターターキットには、要求をインターセプトするために使用できるRequestInterceptorクラスが付属していますが、応答に相当するものはないようです。理想的には、応答がネットワーク経由で送信される直前、たとえば、基になるサービスメソッドが戻ったときに応答をインターセプトできるようにしたいと思います。助言がありますか?

4

2 に答える 2

2

パラメータではなく生のメッセージをインターセプトする場合は、Daniが提案するIParameterInspector拡張ポイントの代わりにIDispatchMessageInspectorの実装を挿入できることに注意してください。

于 2009-10-31T11:58:16.143 に答える
0

WCFには技術があります。属性IOperationBehaviorから派生するInstrumentedOperationAttributeを作成します。

内部で実装します:

public void ApplyDispatchBehavior(

   OperationDescription operationDescription,

   DispatchOperation dispatchOperation

   )
{

  dispatchOperation.ParameterInspectors.Add(

     new ServerPI()

     );

}

ServerPI()クラスは、魔法を実行するものです。beforecallメソッドとaftercallメソッドで必要なすべてを実行します。

  class ServerPI : IParameterInspector
  {

    public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
    {
      Guid result = (Guid)correlationState;
      // ...
    }

    public object BeforeCall(string operationName, object[] inputs)
    {
      string parameter1 = inputs[0] as string;
      return Guid.NewGuid();
    }

  }
于 2009-10-31T08:29:49.803 に答える