Отслеживание / проверка сообщения клиента WCF - PullRequest
0 голосов
/ 07 ноября 2019

Я отправляю сообщение от моего клиента ( реализует IClientMessageInspector ), используя BeforeSendRequest (), и получаю ответ от конечной точки в AfterReceiveReply ().

Мой вопрос заключается в том, какой самый эффективный способ «проверить» полученный ответ связан с отправленным запросом?

Я нашел статью об использовании корреляционного состояния, нопримеры были слишком смелыми.

Любая помощь очень ценится.

1 Ответ

1 голос
/ 07 ноября 2019

Насколько я знаю, мы могли бы использовать параметр 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
Не стесняйтесь, дайте мне знать, если естьЯ могу помочь с чем угодно.

...