Ссылка на службу не может быть правильно десериализована и помещает ноль в поля (от 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");
}
}