所以我在我的 VS2010 项目中的服务参考有一个奇怪的问题,我真的无法弄清楚。
每当我重建附加服务引用的soap服务时,我都无法再反序列化来自其中一种方法的数据。所有其他方法都有效,但特别是其中一种方法只是填充了空值/默认值,而不是正确的值。我可以确认 Web 服务仍在返回良好的数据并且看起来格式正确。一旦我更新了服务引用,它就会再次工作,直到我重建。
当我去查看结构的差异时,我发现以下文件现在有所不同:
- 配置.svcinfo
- 配置91.svcinfo
- 参考.cs
- 参考.svcmap
- 我的服务.disco
- 我的服务.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");
}
}