将选定的操作合同公开为ReST导致错误合同'IContract'的操作'方法名'指定多个请求主体

时间:2015-12-10 02:11:43

标签: json wcf rest webhttpbinding webinvoke

以下是该方案。现有的服务合同中包含一些桌面应用程序消耗的方法。现在需要通过ReST公开一些操作合同。但它要求将所有方法公开为ReST。否则,下面的文本会有例外情况,如果参数被包裹,通常会出现这种情况。

真的很混乱。看起来像是框架中的错误。

错误讯息 -

合同'IService'的操作'SaveEntitiy'指定要序列化的多个请求体参数,而不包含任何包装元素。最多可以在没有包装元素的情况下序列化一个body参数。删除额外的body参数或将WebGetAttribute / WebInvokeAttribute上的BodyStyle属性设置为Wrapped。

运营合同。

[ServiceContract]
public interface IService
{
        [OperationContract] //No need to expose this as ReST
        string SaveEntity(int id,string name);

        [OperationContract]
        [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json)]
        string GetData(int value);
}

如果我们将SaveEntity公开为ReST everthing工作。意味着配置是正确的。

1 个答案:

答案 0 :(得分:0)

当您尝试使用GET时,请使用下面的 WebGet 方法:

[WebGet(UriTemplate =“GetData / input / {value}”)]

或者

您也可以尝试单独使用[WebGet]。