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