IDispatchMessageInspector는 요청 메시지를 작업에 전달하기 전에 또는 응답 메시지를 호출자에게 반환하기 전에 인바운드 또는 아웃 바운드 응용 프로그램 메시지를 검사하거나 수정하는 데 사용됩니다.
메시지 검사자는 스택 (디스패치 수준)보다 높으므로 끝점에서 바인딩을 사용하지 않아도됩니다. 예를 들어
: 위의 코드에서 (wsHttp 또는 NetTcp를) 바인딩의 "종류"에 대한 언급이 없다
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);
}
}
}
}
.
이 질문에 대한 답은 어떻게 테스트 할 것인지 확신 할 수 없습니다. ApplyDispatchBehavior에서 테스트 할 내용은 없습니다 (WCF 프레임 워크 제외). 단위 테스트를 작성하여 IDispatchMessageInspector 클래스를 테스트 할 수 있습니다.