Ссылка на службу не может быть правильно десериализована и помещает ноль в поля (от asp.net до asp.net)

Так что у меня возникла странная проблема с моей ссылкой на сервис в моем проекте VS2010, которую я не могу понять.

Каждый раз, когда я перестраиваю сервис мыла, к которому привязана ссылка на сервис, я больше не могу десериализовать данные из одного из методов. Все остальные методы работают, но один из них просто заполняется значениями null/default вместо правильных значений. Я могу подтвердить, что веб-сервис по-прежнему возвращает хорошие данные и выглядит в правильном формате. Как только я обновляю сервисную ссылку, все работает снова, пока я не перестрою.

Когда я иду и смотрю на различия в структуре, я вижу, что следующие файлы теперь разные:

  • Configuration.svcinfo
  • Configuration91.svcinfo
  • Reference.cs
  • Reference.svcmap
  • MyService.disco
  • MyService.wsdl

Когда я смотрю в WSDL это выглядит почти как поля были переупорядочены. Но я не понимаю, как это возможно.

Вот информация заголовка для моего веб-сервиса

[WebService(Namespace = http://myservice/)]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[Policy("ServerPolicy")]

Кто-нибудь знает, почему это происходит с каждой перестройкой?

РЕДАКТИРОВАТЬ: Вот пример.

Например, вот случайное изменение, которое было сделано, этот класс не был изменен, а только перекомпилирован:

До:

/// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(Order=0)]
    public string Userid {
        get {
            return this.useridField;
        }
        set {
            this.useridField = value;
            this.RaisePropertyChanged("Userid");
        }
    }

После:

/// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(Order=2)]
    public string Userid {
        get {
            return this.useridField;
        }
        set {
            this.useridField = value;
            this.RaisePropertyChanged("Userid");
        }
    }

0 ответов

Другие вопросы по тегам