Управление Content-Type из сервиса REST

Я работаю над службой REST на основе шаблона службы WCF REST в VS2010. Из коробки у вас может быть служба, возвращающая XML или JSON, основанная на типе Accept, указанном в запросе, но как мне добавить свой собственный формат.... Я нашел пример:

http://msdn.microsoft.com/en-us/library/ee476510.aspx

где вы проверяете заголовок Accept в методе и возвращаете Message на основе этого типа, однако мне не очень нравится реализовывать это во всех моих методах обслуживания.

Что мне действительно нравится, так это способ, которым я мог бы аннотировать (атрибут) мой DataContract с помощью форматера / сериализатора для каждого типа Content-Type, который я хочу поддерживать, и затем инфраструктура вызывать мой форматтер / сериализатор при запросе Content- Тип не поддерживается "из коробки".

Есть ли уже какие-то точки расширения в инфраструктуре службы REST WCF для этого?

Любая помощь будет принята с благодарностью TIA

Серен

1 ответ

WcfRestContrib должен быть в состоянии сделать это через средства форматирования. Он предоставляет набор встроенных средств форматирования для сообщений в формате XML, JSON, URL-кодированных форм, а также позволяет создавать собственные средства форматирования.

Встроенный webHttpBinding в WCF на данный момент не имеет этой функциональности - она ​​позволяет только appliation/json а также text/xml согласование и другие типы контента могут быть сопоставлены с этими двумя с помощью пользовательского сопоставителя типов контента.

"Атрибуты" для форматирования ответов доступны только для синдикации, где она работает немного иначе. Сервис всегда должен возвращаться SyndicationFeedFormatter а известные типы позволяют определять несколько производных форматеров для Atom или Rss.

Другие вопросы по тегам