Как использовать 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
каким-то образом в методе операции службы для доступа к пользовательским значениям заголовка?