Tracking/Checking WCF 客户端消息

Tracking/Checking WCF client message

我使用 BeforeSendRequest() 从我的客户端(实现 IClientMessageInspector)发送一条消息,并在 AfterReceiveReply() 接收来自端点的回复。

我的问题是 "validate" 我收到的回复与我发送的请求相关的最有效方法是什么?

我找到了一些关于使用 correlationstate 的文章,但是例子都太空泛了。

非常感谢任何帮助。

据我所知,我们可以使用Correlationstate参数来保持值来表示相对性。 这就是 BeofreSendRequest 具有返回值的原因。

public void AfterReceiveReply(ref Message reply, object correlationState)
{
    Console.WriteLine(correlationState.ToString());
    string displayText = $"the client has received the reply:\n{reply}\n";
    Console.Write(displayText);
}

public object BeforeSendRequest(ref Message request, IClientChannel channel)
{
    var correlationstate = Guid.NewGuid().ToString();
    string displayText = $"the client send request message:\n{request}\n";
    Console.WriteLine(displayText);
    return correlationstate;
}

这里有一个相关的讨论,希望对你有用。
https://social.msdn.microsoft.com/Forums/vstudio/en-US/c8de85bf-9ffe-478e-a23c-2514a6504bce/iclientmessageinspector-maintain-id-value-between-the-beforesendrequest-and-afterreceivereply?forum=wcf
如果有什么我可以帮忙的,请随时告诉我。