К проекту подключен внешний Service Reference. Сгенерированный код в Reference.cs содержит свойства int
и DateTime
, помеченные как Nullable
. Например:
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=true)]
public System.Nullable<int> idType {
get {
return this.idTypeField;
}
set {
this.idTypeField = value;
this.RaisePropertyChanged("idType");
}
}
Проблема в том, что после сериализации эти свойства отсутствуют в теле XML-запроса. Пример кода с отправкой запроса:
using (SingleFormatServiceClient c = new SingleFormatServiceClient())
{
AuthData auth = new AuthData()
{
login = "login",
password = "pass"
};
GroupRequestData requestData = new GroupRequestData();
ConnectorCode connectorCode = new ConnectorCode()
{
connectorCode = "0",
subRequestCode = new[] { "1" }
};
PersonRequestData personRequestData = new PersonRequestData();
personRequestData.idNum = "757496";
personRequestData.idSeries = "9823";
personRequestData.idType = 21;
personRequestData.consentEndDate = DateTime.ParseExact("05.08.2020", "dd.MM.yyyy", CultureInfo.CurrentCulture);
personRequestData.issueLocation = "МОСКВА";
requestData.personParam = new[] { personRequestData };
requestData.connectorCodes = new[] { connectorCode };
ProcessRequestOut resp = c.groupRequest(auth, requestData);
}
Запрос успешно отправляется. Все стринговые свойства (idNum
, idSeries
, issueLocation
) в запросе присутствуют. idType
и consentEndDate
нет (вообще их нет в структуре xml). Пытаясь разобраться, в отладчике увидел, что эти свойства возвращаются не как свойства, а как поля с ограниченным доступом (?):
Судя по всему, в этом и проблема. Если в сгенерированном классе сервис-референса убрать Nullable
тип, то свойство возвращается в своём нормальном виде, но возникают другие проблемы при вызове сервиса.
Возможно ли как-то обойти проблему, желательно без внесения изменений в сгенерированный код? Доступа к исходному коду сервиса нет. Благодарю за любую помощь и идеи.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Имеется Slider ,в инспекторе maxValue = 50 , программно задаю maxValue = 100 при запуске как было 50 так и остается, почему? Пробовал из в Awake и Start, тот де результат...
Событие нажатия клавиши альт срабатывает только один раз, но при клике правой кнопкой мыши в рабочей области снова срабатывает один раз