这是场景。有一个现有的服务合同,其中包含一些被桌面应用程序使用的方法。现在需要通过 ReST 暴露一些操作合约。但它要求将所有方法公开为 ReST。否则,如果参数被包装,下面的文本通常会出现异常。
真的很混乱。似乎是框架中的错误。
错误信息 -
合约“IService”的操作“SaveEntitiy”指定了多个要序列化的请求主体参数,而无需任何包装器元素。最多一个 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,那么一切正常。表示配置正确。