传递除wcf中的消息之外的其他上下文数据

时间:2015-03-13 18:50:22

标签: c# wcf wcf-binding wcf-client wcf-endpoint

所有

我们有一个消息检查器,可以将传入和传出的soap消息记录到自定义数据库中,然后我们需要根据guid / some id来处理请求和响应,这些ID是 NOT 请求和响应消息。

有没有办法我们可以将其他信息传递给消息检查器,说除了messqge之外的几个上下文属性

1 个答案:

答案 0 :(得分:0)

消息检查器具有correlationState,您可以使用它来关联接收/发送。如果在服务中,则从AfterRecieveRequest返回相关令牌,并在BeforeSendReply中使用它。在客户端上,它的AfterReceiveReply返回相关令牌。

public interface IDispatchMessageInspector
{
    object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext);
    void BeforeSendReply(ref Message reply, object correlationState);
}

public interface IClientMessageInspector
{
    void AfterReceiveReply(ref Message reply, object correlationState);
    object BeforeSendRequest(ref Message request, IClientChannel channel);
}