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クラスをテストするための単体テストを書くことができます。