Как настроить сериализатор JSON по умолчанию в WCF REST

Служба WCF REST отлично работает, поскольку она будет отвечать/принимать JSON или XML в зависимости от заголовка.

Я хочу немного изменить встроенный сериализатор JSON, чтобы он кодировал/декодировал Byte[] немного по-другому. В частности, я хочу использовать для этого Base64.

Есть ли какие-либо указатели/образцы, в которых я могу установить сериализатор пользовательского типа, который повлияет на всю службу?


person katit    schedule 07.07.2011    source источник


Ответы (2)


Сообщение на http://blogs.msdn.com/b/carlosfigueira/archive/2011/05/03/wcf-extensibility-message-formatters.aspx показывает, как заменить сериализатор JSON по умолчанию (DataContractJsonSerializer) на пользовательский (в данном случае , JSON.NET).

person carlosfigueira    schedule 07.07.2011
comment
Я вижу, что это было сделано для более старых WCF. Я использую отдых .NET 4 WCF, и атрибуты не задействованы. код очень четкий и прозрачный. Интересно, есть ли способ настроить сериализатор где-нибудь в web.config? - person katit; 07.07.2011
comment
Вы можете создать расширение поведения (информация по адресу blogs.msdn.com/b/carlosfigueira/archive/2011/06/28/), чтобы добавить его в конфигурацию, но вам все еще нужен код для его подключения к конвейеру WCF с 4.0. С новыми веб-API WCF (в настоящее время предварительная версия находится на wcf.codeplex.com) это будет намного проще ( вы бы написали средство форматирования типа носителя и подключили его с помощью фабрики). - person carlosfigueira; 07.07.2011

Мне только что удалось заменить DataContractJsonSerializer по умолчанию на сериализатор JSON.NET в моих службах WCF REST 4.0, используя NETFx Json .NET MediaTypeFormatter. Также см. Сериализатор JSON.NET для служб WCF REST для решения проблемы проблема, с которой я столкнулся, чтобы заставить это работать.

person muruge    schedule 22.03.2012