为什么WSDL更改会破坏vb.net应用程序?

为什么WSDL更改会破坏vb.net应用程序?,.net,vb.net,service,web,wsdl,.net,Vb.net,Service,Web,Wsdl,我正在访问一个用c#编写的web服务——我正在用vb.net编写我的应用程序。webservice的所有者最近通过在枚举中添加一些值以及向WSDL中公开的类添加一些其他字符串值,对WSDL进行了增强 当合作伙伴更新此WSDL时,我的应用程序停止将值正确绑定到我的对象。我的部分对象填充了值,但部分对象没有。。。它们是空的 我打开了符合要求的代码并更新了web参考,代码又开始工作了。我的代码运行良好,但我正在努力理解为什么会发生这种情况。这是在VB.net中编写代码的产物还是需要处理的东西?我关心的

我正在访问一个用c#编写的web服务——我正在用vb.net编写我的应用程序。webservice的所有者最近通过在枚举中添加一些值以及向WSDL中公开的类添加一些其他字符串值,对WSDL进行了增强

当合作伙伴更新此WSDL时,我的应用程序停止将值正确绑定到我的对象。我的部分对象填充了值,但部分对象没有。。。它们是空的

我打开了符合要求的代码并更新了web参考,代码又开始工作了。我的代码运行良好,但我正在努力理解为什么会发生这种情况。这是在VB.net中编写代码的产物还是需要处理的东西?我关心的只是未来的规划


感谢您的帮助。

他们更改了API,并破坏了与旧API的兼容性。他们发布了一个WSDL,这使您更容易修复更改,但一旦他们更新的web服务开始运行,从原始WSDL构建的客户端将工作或不工作(取决于更改的性质)。你可以放心,这在任何其他语言中都会发生。管理这种破坏的一种常见做法是在不同的URL上承载更新的WSDL(通常在URL中包含版本号)。这使得并行运行不同版本变得更容易,并且不会破坏旧的应用程序。有时您需要打破API,因此与客户进行良好沟通也是关键。我喜欢先将我不推荐的API设置为只读,并显示错误消息,帮助开发人员了解正在发生的事情。当我看到对不推荐的API的API调用时,我会立即发送电子邮件或拿起电话。这显然对PayPal不起作用,但如果这是一种选择,它可以让合作伙伴感到高兴,到目前为止,这是值得我花时间的