【问题标题】:WCF: Pass json as parameterWCF:将 json 作为参数传递
【发布时间】:2012-09-12 12:47:14
【问题描述】:

假设我有以下 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) 中,我可以将数据参数转换为 Dictionary[string, object]。挺好的。

但是如果我把这个方法放在WCF服务中,data参数总是空的。

我必须做什么?我在 WCF 中需要与 .asmx 文件中相同的行为。

【问题讨论】:

    标签: asp.net json wcf


    【解决方案1】:

    您是否在 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
      {....}
    

    【讨论】:

    • 嗨。是的,我做到了。 WCF 运行良好。我唯一的问题是带有 json 内容的参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    • 2017-03-04
    相关资源
    最近更新 更多