Как использовать IDispatchMessageInspector в службе WCF?

Я пытаюсь использоватьIDispatchMessageInspector в реализации службы WCF для доступа к пользовательским значениям заголовка.

Что-то вроде:

public class MyService : IMyService
{
    public List<string> GetNames()
    {
        var headerInspector = new CustomHeaderInspector();

        // Where do request & client channel come from?
        var values = headerInspector.AfterReceiveRequest(ref request, clientChannel, OperationContext.Current.InstanceContext);            
    }
}

Я реализовал свой собственный класс IDispatchMessageInspector.

public class CustomHeaderInspector : IDispatchMessageInspector
{
    public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
    {
        var prop = (HttpRequestMessageProperty)request.Properties[HttpRequestMessageProperty.Name];
        var userName = prop.Headers["Username"];

        return userName;
    }
}

Как пройти

System.ServiceModel.Channels.Сообщение а также

System.ServiceModel.IClientChannel

вAfterReceiveRequest называетсяот реализации сервиса?

РЕДАКТИРОВАТЬ:

Многие статьи, какэтот или жеэтот, приведите примеры того, как реализовать свой собственныйServiceBehavior, Итак, ваша реализация сервиса выглядит так:

[MyCustomBehavior]
public class MyService : IMyService
{
    public List<string> GetNames()
    {
        // Can you use 'MyCustomBehavior' here to access the header properties?
    }
}

Так с этим, я могу получить доступMyCustomBehavior каким-то образом в методе операции службы для доступа к пользовательским значениям заголовка?

Ответы на вопрос(4)

Ваш ответ на вопрос