Как я могу отключить MessageInspector моего состояния - PullRequest
0 голосов
/ 17 июня 2011

Я проверяю службу WCF с помощью IDisptachMessageInspector, а затем вызываю операцию службы в методе BeforeSendReply, который изменяет контекст сообщения. Но это когда я звоню в сервис, Инспектор снова запускается. Я хочу не запускать инспектора. Вы знаете какой-нибудь способ сделать это scenerio?

Ответы [ 2 ]

0 голосов
/ 16 августа 2011

Ответ реализует IOperationInvoker

0 голосов
/ 17 июня 2011

Цель инспектора сообщений - позволить вам изменить сообщение до или после того, как остальная часть уровня модели сервиса его обработает

BeforeSendReply вызывается после того, как операция уже была вызвана, AfterReceiveRequest вызывается до ее вызова.

Вы наблюдаете за тем, что инспектор сообщений запускается после операции. Затем вы запускаете другую операцию, которая в итоге снова вызывает вашего инспектора сообщений. BeforeSendReply часто используется для манипулирования ответным сообщением в каком-либо формате, который у WCF возникают проблемы с генерацией с использованием его сериализации по умолчанию и т. Д. Он не сможет дать вам поведение, которое вы ищете

Чтобы решить, какая операция вызывается, вы обычно реализуете IDispatchOperationSelector . Конкретная идея этой точки расширения выглядит так, как будто это именно то, что вам нужно

...