2012-01-25 1 views
0

Возможно ли целевое использование делегированияHandlers (обработчиков сообщений) в WCF Web Api при определенных запросах (как это возможно с обработчиком операций) или глобальные обработчики сообщений. Под этим я подразумеваю, что их вызывают для каждого запроса.Целевое задание WCF Web Api Message Handler по конкретным запросам

+0

Вы говорите о возможности переключения обработчика запроса, когда он попадает в стек канала? –

+0

нет, я говорю о обработчике, применимом только к некоторым запросам. я получил ответ через твиттер - используйте uri. я надеялся иметь атрибут против класса ресурсов/метода, но невозможно получить от обработчика сообщений так же легко, как и для обработчиков операций. у меня есть идея о том, как это сделать, поэтому я, вероятно, в конечном итоге отвечу на свой вопрос, как только я получу эту работу –

ответ

1

Вы можете настроить различные конфигурации и сопоставить эти конфигурации с соответствующими маршрутами. Так, например:

var config1 = new HttpConfiguration(); 
config1.MessageHandlers.Add(typeof(MyMessageHandler)); 
config1.MessageHandlers.Add(typeof(MyMessageHandler2)); 

var config2 = new HttpConfiguration(); 
config2.MessageHandlers.Add(typeof(MyMessageHandler3)); 
config2.MessageHandlers.Add(typeof(MyMessageHandler4)); 

RouteTable.Routes.MapServiceRoute<ContactService>("api/contacts", config1); 
RouteTable.Routes.MapServiceRoute<InvoiceService>("api/invoices", config2);