【发布时间】:2011-09-29 11:10:13
【问题描述】:
REST 只接受字符串..?
所以我要做的是制作一个字符串公开的合同并将其转换为服务器端,然后将其传递给 SOAP 直接调用的我的方法。哪个有效。 (我可以从 firefox 调用 REST)
但是现在,我无法公开我的 SOAP OperationContract 而不引起错误问题:
Operation 'GetServices' of contract 'IServices' specifies multiple request body parameters to be serialized without any wrapper elements. At most one body parameter can be serialized without wrapper elements. Either remove the extra body parameters or set the BodyStyle property on the WebGetAttribute/WebInvokeAttribute to Wrapped.
以下是我公开的 3 个方法。 只有当我隐藏第 3 个时,REST 才能工作。 删除我的 SOAP 连接..(我相信它希望在第 3 个方法上设置 REST,因为它没有被定义,所以无法理解)
// REST
[OperationContract]
[WebGet(UriTemplate = "GET/Services/{CostCentreNo}/{Filter}")]
List<Services> RestGetServices(String CostCentreNo, String Filter);
// REST
[OperationContract]
[WebGet(UriTemplate = "GET/ServiceDetails/{CostCentreNo}/{ServiceCode}/{Recurring}")]
List<ServiceDetails> RestGetServiceDetails(String CostCentreNo, String ServiceCode, String Recurring);
// SOAP
[OperationContract]
List<Services> GetServices(Int32 CostCentreNo, Int32 Filter);
当然,我可以只创建一种合约方法,它允许我调用 SOAP 或 REST。
【问题讨论】: