Я пытаюсь отправить JSON в службу WCF.Объект json содержит свойство и массив.Проблема в том, что TripleTransaction всегда пуст, когда запрос поступает на сервер.Мне интересно, как правильно привязать к моему контракту данных.Если кто-то может дать мне указатель здесь, я был бы очень признателен.
Вот как выглядит мой интерфейс службы:
[OperationContract]
[CorsBehavior]
[WebInvoke(Method = "POST", UriTemplate = "Triples/{library}", ResponseFormat = WebMessageFormat.Json)]
ResultMessage InvokeGraphTransactions(string library, TripleTransaction tripleTransaction);
Я пытаюсь заполнить TripleTransaction POSTed JSON.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; }
}
Приведенный выше датаконтракт смоделирован как POSTed JSON.Используя FireBug, я вижу, что запрос выглядит правильно.JSON находится в полезной нагрузке сообщения, а заголовок запроса имеет contentType: application / json
Это пример json, который я пытаюсь отправить:
{
"tripleTransaction": {
"Localization": "en-us",
"Transactions": [
{
"TransactionType": 0,
"SubjectLocalPart": "testSubject",
"PredicateLocalPart": "testPredicate",
"ObjectPart": "1",
"Update": "2"
},
{
"TransactionType": 1,
"SubjectLocalPart": "testSubject",
"PredicateLocalPart": "testPredicate",
"ObjectPart": "1"
}
]
}
}