Сервисный метод WCF для возврата json или мыла - PullRequest
3 голосов
/ 22 апреля 2011

Я читал много постов о получении / возврате объектов json в методе WCF. Поправьте меня, если я ошибаюсь: добавив конечную точку и поведение WebHTTp в конфигурацию в дополнение к WebInvoke до того, как метод службы разрешит возврат объектов json методом службы.

Использование webinvoke делает метод очень специфичным для определенного формата (json здесь). Проблема в том, что у меня уже есть служба WCF SOAP, и я хочу повторно использовать методы службы, чтобы иметь возможность возвращать объекты XML или JSON. Есть ли способ сделать методы общими и изменить формат ответа на основе используемых конечных точек или платформ, используемых для доступа к моему методу обслуживания?

1 Ответ

6 голосов
/ 22 апреля 2011

Да, это возможно.JSON и SOAP нужны разные привязки, поэтому вашему сервису нужны две конечные точки - одна с поведением конечной точки webHttpBinding и webHttp, а вторая с basicHttpBinding или другой SOAP-ориентированной привязкой.Эти конечные точки должны иметь разные относительные адреса.

Если вы хотите поддерживать оба формата JSON и XML (POX не SOAP) в службе REST, вы можете сделать это на одной конечной точке в WCF 4, определив automaticFormatSelectionEnabled="true" вwebHttp поведение, используемое для конечной точки REST.Это позволяет конечной точке возвращать данные в формате JSON или XML.Выбор формата зависит от формата входящего запроса, поэтому запрос в JSON получит ответ в формате JSON, а запрос в XML получит ответ в формате XML.

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