Клиент, созданный NetCFSvcUtil, игнорирует атрибуты int и long

#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. Я думаю, что это просто опускает значения по умолчанию. Попробуйте это с ненулевыми данными и дайте мне знать.