我使用BeforeSendRequest()从客户端(实现IClientMessageInspector )发送消息,并在AfterReceiveReply()处接收来自端点的答复。
我的问题是,相对于我发送的请求,“验证”我收到的回复的最有效方法是什么?
我找到了一些有关使用correlationstate的文章,但是这些例子太过庞大了。
非常感谢您的帮助。
我使用BeforeSendRequest()从客户端(实现IClientMessageInspector )发送消息,并在AfterReceiveReply()处接收来自端点的答复。
我的问题是,相对于我发送的请求,“验证”我收到的回复的最有效方法是什么?
我找到了一些有关使用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
随时让我知道是否有什么可以帮助您的。