IDispatchMessageInspector используется для проверки или изменения входящих или исходящих сообщений приложения либо перед отправкой сообщения-запроса в операцию, либо перед возвратом ответного сообщения вызывающей стороне.
Инспекторы сообщений находятся выше в стеке (на уровне диспетчеризации), поэтому привязка, используемая конечной точкой, не имеет значения.
Например:
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
{
foreach (ChannelDispatcherBase cdb in serviceHostBase.ChannelDispatchers)
{
var cd = cdb as ChannelDispatcher;
if (cd != null)
{
foreach (var ed in cd.Endpoints)
{
ed.DispatchRuntime.MessageInspectors.Add(new AuthorizationHeaderGetter());
ed.DispatchRuntime.InstanceProvider = new UserTokenInjector(serviceDescription.ServiceType);
}
}
}
}
В приведенном выше коде нет упоминания о «виде» привязки (wsHttp или NetTcp).
Что касается вашего вопроса, какпроверить это, я не уверен, что вы будете тестировать.В ApplyDispatchBehavior нечего тестировать (кроме фреймворка WCF).Вы можете написать модульный тест для проверки вашего класса IDispatchMessageInspector.