Как установить по умолчанию RequestFormat для WCF ServiceContract?
Я пишу веб-сервис, который имеет много методов. Все они настроены примерно так:
[OperationContract]
[WebInvoke(
BodyStyle = WebMessageBodyStyle.Bare,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "x/y/z")]
void someMethod(int x, int y, int z);
Что я хочу сделать, это просто установить по умолчанию BodyStyle
/ RequestFormat
/ ResponseFormat
все в файле web.config. Теперь я знаю, что могу сделать это:
<endpointBehaviors>
<behavior name="webHttpBehavior">
<webHttp defaultBodyStyle="Bare" defaultOutgoingResponseFormat="Json" />
</behavior>
</endpointBehaviors>
Но, похоже, нет атрибута для RequestFormat. Как я могу установить по умолчанию RequestFormat
в JSON?
2 ответа
Типы запросов автоматически интерпретируются WCF, вам не нужно указывать значение по умолчанию RequestFormat
для вашего обслуживания операции.
Если вы пытаетесь применить поддерживаемый формат запроса, см. Соответствующую статью SO по применению типов содержимого запроса.
Примечание: не имеет смысла назначать RequestFormat
для WebGet
операция. По определению WebGet
не может содержать Body
где будет существовать формат JSON. Лучшим примером здесь будет WebInvoke
,
Установить automaticFormatSelectionEnabled
собственность на true
в элементе webHttp в файле web.config
<behaviors>
<endpointBehaviors>
<behavior>
<webHttp automaticFormatSelectionEnabled="true" />
</behavior>
</endpointBehaviors>
</behaviors>
например: вы можете установить Accept:application/json
в конце получения и получить результат JSON.
почтальон экраны
================================================== ==================
https://msdn.microsoft.com/en-us/library/ee476510(v=vs.110).aspx