C # WCF REST - Как вы используете сериализатор JSON.Net вместо DataContractSerializer по умолчанию?

В .NET 3.5, возможно ли переопределить стандартный DataContractJsonSerializer и использовать вместо этого сериализатор JSON.net?

NOTE: Мы не хотим использовать атрибуты в классе

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

Решение Вопроса

это возможно. Но это не так просто. Вам понадобится новый форматер сообщений, который использует сериализатор JSON.NET вместо стандартного для преобразования между параметрами операции и объектом сообщения, необходимым для стека WCF. Пост вhttp://blogs.msdn.com/b/carlosfigueira/archive/2011/05/03/wcf-extensibility-message-formatters.aspx есть пример, который делает именно это. Код написан для 4.0, но он должен работать и для 3.5.

 Tawani15 июн. 2012 г., 19:11
а UriTemplates?
 Tawani15 июн. 2012 г., 17:40
Хорошая статья, но как бы вы обрабатывали запросы XML?
 15 июн. 2012 г., 19:14
Да, но вам нужно изменить реализацию WebContentTypeMapper, чтобы она возвращала только "raw" для запросов JSON. Форматер затем будет изменен, чтобы сначала проверить формат запроса (через WebBodyFormatMessageProperty); если это XML (или не Raw), делегируйте вызов исходному форматеру, который может обрабатывать XML.

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