C# WCF-包含数组的Post JSON对象

C# WCF-包含数组的Post JSON对象,c#,wcf,web-services,rest,wcf-binding,C#,Wcf,Web Services,Rest,Wcf Binding,我正在尝试将JSON发布到WCF服务。json对象包含一个属性和一个数组。问题在于,当请求到达服务器时,TripleTransaction始终为null。我想知道如何正确地绑定到我的数据契约。如果有人能在这里给我指点,我会非常感激 这就是我的服务界面的外观: [OperationContract] [CorsBehavior] [WebInvoke(Method = "POST", UriTemplate = "Triples/{library}", Respo

我正在尝试将JSON发布到WCF服务。json对象包含一个属性和一个数组。问题在于,当请求到达服务器时,TripleTransaction始终为null。我想知道如何正确地绑定到我的数据契约。如果有人能在这里给我指点,我会非常感激

这就是我的服务界面的外观:

 [OperationContract]
        [CorsBehavior]
        [WebInvoke(Method = "POST", UriTemplate = "Triples/{library}", ResponseFormat = WebMessageFormat.Json)]
        ResultMessage InvokeGraphTransactions(string library, TripleTransaction tripleTransaction);
我试图用发布的JSON填充TripleTransaction。TripleTransaction包含TripleModel的列表

 [DataContract]
public class TripleTransaction
{
    [DataMember]
    public string Localization { get; set; }

    [DataMember]
    public List<TripleModel> Transactions { get; set; } 
}


 [DataContract]
   public class TripleModel
    {
        [DataMember]
        public int TransactionType { get; set; }

        [DataMember]
        public string SubjectLocalPart { get; set; }

        [DataMember]
        public string PredicateLocalPart { get; set; }

        [DataMember]
        public string ObjectPart { get; set; }

        [DataMember]
        public string Update { get; set; }

    }
您应该发布以下内容:

 {
    "Localization": "en-us",
    "Transactions": [
      {
        "TransactionType": 0,
        "SubjectLocalPart": "testSubject",
        "PredicateLocalPart": "testPredicate",
        "ObjectPart": "1",
        "Update": "2"
      },
      {
        "TransactionType": 1,
        "SubjectLocalPart": "testSubject",
        "PredicateLocalPart": "testPredicate",
        "ObjectPart": "1"
      }
    ]
  }
在POST变量名“tripleTransaction”下


否则它不知道应该将数据链接到哪个参数

KnownTypes?但是我不确定rest服务上是否需要它,您所说的POST变量名是什么意思?当您在页面上发布数据时,您只能发布键值数据列表。当我说“POST变量名”时,我指的是键。请阅读
 {
    "Localization": "en-us",
    "Transactions": [
      {
        "TransactionType": 0,
        "SubjectLocalPart": "testSubject",
        "PredicateLocalPart": "testPredicate",
        "ObjectPart": "1",
        "Update": "2"
      },
      {
        "TransactionType": 1,
        "SubjectLocalPart": "testSubject",
        "PredicateLocalPart": "testPredicate",
        "ObjectPart": "1"
      }
    ]
  }