Я пытаюсь вызвать Службу WCF из XCODE, у которой в качестве параметра указан объект вместо строки или long. Я всегда использую пару сервисов, которые хотят иметь простой параметр типа string или long, и они работают отлично. Но когда я использую объект в качестве параметра, я могу попасть в службу C # на моем компьютере с Windows, но параметр всегда является новым объектом C # без значений.
Объект, который я использую, выглядит следующим образом:
[DataContract]
public class MobileComplaint
{
[DataMember]
public long MobileComplaintID { get; set; }
[DataMember]
public string CaseNo { get; set; }
[DataMember]
public DateTime CreationDate { get; set; }
[DataMember]
public string CreationUser { get; set; }
[DataMember]
public string DaysSinceLastChange { get; set; }
[DataMember]
public string State { get; set; }
}
Функция выглядит следующим образом:
[OperationContract]
MobileComplaint Save(long UserID, MobileComplaint mc);
Для обычных функций я использую сообщения, которые выглядят так:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<OpenComplaint xmlns="http://tempuri.org/">
<MobileComplaintID>3</MobileComplaintID>
</OpenComplaint>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Вопрос теперь, как мне написать параметр для этого сообщения!
Второй вопрос необходимо ли добавить все параметры для объекта или это нормально, когда я просто заполняю те, которые мне нужны.
THX за помощь
Я всегда пробовал следующие два:
<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<Save xmlns="http://tempuri.org/">
<UserID>229001</UserID>
<mc xmlns:a="http://schemas.datacontract.org/2004/07/Ibs.MobileDefectDetection.Vo" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:MobileComplaintID>29292</MobileComplaintID>
</mc>
</Save>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<Save xmlns="http://tempuri.org/">
<UserID>229001</UserID>
<mc>
<MobileComplaintID>29292</MobileComplaintID>
</mc>
</Save>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
ОК, я опечатал:
29292
29292
Я пропустил "а:"
Теперь он заполняет некоторые свойства объекта, но не все!
У кого-нибудь есть идея, как это может произойти?