Как я могу изменить выходную сериализацию для текста / HTML в WCF 4 Автоматический выбор формата? - PullRequest
0 голосов
/ 15 ноября 2010

В WCF реализован выбор сериализации MIME-типов, поэтому принимаемые заголовки запроса влияют на сериализацию ответа.Это замечательное изменение, и оно значительно упрощает написание моих конечных точек REST.

Однако.

При использовании «automaticFormatSelectionEnabled = true» один из автоматически обрабатываемых форматов - «text / html»,и его результатом является возвращение всех данных поля из объекта ответа, объединенного без разделителя.Это не особенно полезно, особенно для тестирования с использованием веб-браузера.

Вот заголовок подтверждения от Firefox:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,<em>/</em>;q=0.8

Что бы я хотел сделатьиметь более значимый ответ от этих запросов заголовков.Это может быть выполнено в порядке предпочтения:

  1. Игнорировать текст / html и application / xhtml + xml в заголовке accept, поэтому application / xml возвращается
  2. Использовать text / htmlтот же сериализатор, что и application / XML, и возвращает результаты в виде text / html
  3. . Предоставьте настраиваемый сериализатор для text / html, чтобы я мог сериализовать объект ответа в html в любом формате, который я выберу;он по-прежнему будет отображаться как текст / html

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 20 ноября 2010

MediaTypeProcessors сделает всю работу за вас - вы можете получить биты с сайта WCF CodePlex . Вот пример их использования для возврата желаемого формата (xml, json, html и т. Д.): Процессоры типа носителя WCF

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...