Скопируйте RequestMessage в IParameterInspector.BeforeCall () в службе WCF. - PullRequest
1 голос
/ 29 июля 2010

У меня есть сервис WCF с классом IParameterInspector, который предполагает хранить сообщение для каждого входящего сообщения. Мне нужно извлечь значения из входных параметров.

Чтобы получить сообщение, к которому я пытаюсь получить доступ

Blockquote OperationContext.Current.RequestContext.RequestMessage Blockquote

и затем вызов метода CreateBufferedCopy() для создания копии, чтобы я мог обработать (прочитать) сообщение и отправить его вперед, но затем я получил следующую ошибку:
"Это сообщение не может поддерживать операцию, поскольку оно было прочитано."

Есть идеи? Большое спасибо!

1 Ответ

3 голосов
/ 29 июля 2010

IParameterInspector запускается после сообщение было прочитано контрактом данных / сериализатором xml, поэтому тело сообщения уже было использовано.

Если вы хотите получить необработанный вводсообщение, вместо этого вы должны сделать это в IDispatchMessageInspector и сделать буферизованную копию сообщения, чтобы вы могли передавать его дальше по конвейеру WCF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...