Как я могу отключить MessageInspector моего состояния

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

2 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам