Я пытаюсь выполнить POST JSON в службе WCF. Объект json содержит свойство и массив. Проблема заключается в том, что TripleTransaction всегда имеет значение null, когда запрос поступает на сервер. Мне интересно, как правильно привязать контракт с моими данными. Если кто-нибудь может дать мне указатель, я бы очень признателен.WCF - Добавить объект JSON, содержащий массив
Это то, что мой интерфейс сервиса выглядит следующим образом:
[OperationContract]
[CorsBehavior]
[WebInvoke(Method = "POST", UriTemplate = "Triples/{library}", ResponseFormat = WebMessageFormat.Json)]
ResultMessage InvokeGraphTransactions(string library, TripleTransaction tripleTransaction);
Я пытаюсь заполнить TripleTransaction с посланным 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: приложения/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"
}
]
}
}
KnownTypes? Но я не уверен, что это необходимо для службы отдыха. – Nikolay