WCF:传递json作为参数

时间:2012-09-12 12:47:15

标签: asp.net json wcf

假设我有以下json:

{
    "id": 8574,
    "data": {
        "name": "John",
        "age": 24,
        "description": "test",
        "anotherjson": { "fielda": "valuea", "fieldb": "valueb" }
    }
}

重要提示:我不知道data参数中的字段是什么。

我有以下方法:

public void Save(int id, object data) { ... }

json由jQuery.ajax()发送到方法。

如果我将此方法放在asp.net Web服务(.asmx)中,我可以将data参数转换为Dictionary [string,object]。这很好。

但是,如果我将此方法放在WCF服务中,则data参数始终为空。

我该怎么办?我在WCF中需要与.asmx文件中相同的行为。

1 个答案:

答案 0 :(得分:0)

你是否在thr WCF方法中添加了以下属性?

[OperationContract]
[OperationContract]
[WebInvoke(Method = "POST", 
 BodyStyle = WebMessageBodyStyle.Wrapped,
 ResponseFormat = WebMessageFormat.Json)]
    public void Save(int id, object data) { ... }

以及具有以下属性的服务

[AspNetCompatibilityRequirements(RequirementsMode 
    = AspNetCompatibilityRequirementsMode.Allowed)]
  public class Service : IService
  {....}