#c# #int #long-integer #.net-cf-3.5
#c# #int #длинное целое #.net-cf-3.5
Вопрос:
У меня проблема с сгенерированным клиентом для службы WCF. Проблема в том, что он игнорирует некоторые поля при преобразовании запроса в soap. Он передает только строковые поля.
Это мой класс, который необходимо перенести:
[DataContract]
public class PersonCriteria : CriteriaBase
{
[DataMember]
public long ID { get; set; }
[DataMember]
public string JMBG { get; set; }
[DataMember]
public string Fname { get; set; }
[DataMember]
public string Lname { get; set; }
[DataMember]
public long IdentityCardNumber { get; set; }
[DataMember]
public int DrivingCardNumber { get; set; }
}
И это запрос soap:
{<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://tempuri.org/IPersonsService/GetPerson</Action>
</s:Header>
<s:Body>
<GetPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<personReq>
<Criteria xmlns="http://schemas.datacontract.org/2004/07/Mibo.PoliceDemo.PersonsService.Messages.Requests">
<Fname xsi:nil="true" xmlns="http://schemas.datacontract.org/2004/07/Mibo.PoliceDemo.PersonsService.Criteria" />
<JMBG xmlns="http://schemas.datacontract.org/2004/07/Mibo.PoliceDemo.PersonsService.Criteria">1</JMBG>
<Lname xsi:nil="true" xmlns="http://schemas.datacontract.org/2004/07/Mibo.PoliceDemo.PersonsService.Criteria" />
</Criteria>
</personReq>
</GetPerson>
</s:Body>
</s:Envelope>}
Я пытался изменить некоторые поля на string или int, и это всегда переносит только строковые поля.
Я использую netcfsvcutil для Windows 7 (некоторые обновления).
В чем может быть проблема?
Комментарии:
1. Каковы значения? они равны нулю?
2. Я думаю, что это просто опускает значения по умолчанию. Попробуйте это с ненулевыми данными и дайте мне знать.