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
如果有什么我可以帮忙的,请随时告诉我。
我使用 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
如果有什么我可以帮忙的,请随时告诉我。