如何在不指定WCF服务中的objectname的情况下发布和绑定json数据

时间:2014-12-17 04:06:42

标签: c# json wcf

我在

下面有一项服务
    [OperationContract]
    [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "/PostData")]
 public string GetImage(MyData data)
        {
            return "success";l
        }

数据合同是:

[DataContract]
public class MyData 
{
    [DataMember]
    public string Base64String { get; set; }
    [DataMember]
    public int ID{ get; set; }
}

但在构建json数据时,我必须指定格式:

{
"data":
{
"Base64String": "my base 64 string",
"ID":"1"
}
}

但我的要求是发布没有对象名称(实例名称)的数据,所以我想要像json一样

{
"Base64String": "my base 64 string",
"ID":"1"
}

有没有办法让它以这种方式运作。

1 个答案:

答案 0 :(得分:0)

我相信如果您将BodyStyle属性的WebInvoke属性更改为WebMessageBodyStyle.Bare this might work

[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "/PostData")]
public string GetImage(MyData data)
{
    return "success";
}