我在寻找一种方式来登录一个WCF REST服务请求和响应。在WCF REST入门套件配备了可用于拦截请求RequestInterceptor类,但似乎并没有成为响应的等价物。理想情况下,我想能够拦截之前它是通过网络发送的响应,例如当底层服务方法返回。任何建议?

有帮助吗?

解决方案

请注意,如果你想拦截的原始消息,而不是参数,你可以注入你的 IDispatchMessageInspector 代替IParameterInspector扩展点达尼暗示。

其他提示

有在WCF一个工艺: 创建InstrumentedOperationAttribute从属性派生,IOperationBehavior。

在里面你实现:

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();
    }

  }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top