2015-12-28 2 views
0

Контекст, в котором сообщение формата отправляется в WCF

Я новичок в WCF.

Я читал статью о контракте с сообщением и обнаружил, что WCF отправляет сообщение, используя SOAP.

Мое сомнение в том, что если мы включены REST in WCF service, то он по-прежнему будет использовать формат SOAP для обмена данными.

В WebGet и WebInvoke атрибут [которые для REST], мы упоминаем о inputformat как JSON или XML.

Вопрос

Если сообщения отправляются через SOAP, то почему те, которые необходимы?

Если все протоколы сообщений отправляются с использованием формата SOAP, то договор сообщения не должен работать в случае привязки webHttp.

+0

Возможный дубликат [Почему сообщение в WCF, похоже, всегда находится в формате SOAP?] (Http://stackoverflow.com/questions/10024367/why-is-a-message-in-wcf-seemingly-always-in -soap-format) –

ответ

0

Формат протокола зависит от выбранного вами связывания. Вот a list of the different system provided bindings и базовый протокол, который они используют.

В WebGet и WebInvoke атрибут [которые для REST], мы упоминая inputformat как JSON или XML. Если сообщения отправляются через SOAP, то зачем они нужны.

Если вы используете WebHttpBinding, который использует стандартный HTTP вместо SOAP, то эти атрибуты позволяют указать, нужно ли форматировать запросы, используя простой XML (не SOAP) или JSON.

+0

Будет ли MessageContract работать в случае webHttp? Я прочитал, что MessageContract работает с протоколом SOAP. –

+0

Нет, контракты с сообщениями являются специфичными для SOAP. Вам необходимо использовать Data Contracts с webHttp. Кстати, если вы хотите открыть API RESTful, не будет ли ASP.NET Web API более подходящим решением, чем WCF для вас? –

+0

Спасибо за тонну Дарина. У меня есть ответ. –