我有一个.NET Web服务,它托管一个名为AddMyObject的方法。
[WebMethod]
public void AddMyObject(MyObject[] objects){...}
将MyObject声明为
public class MyObject
{
public string Pro1{get;set;}
public string Pro2{get;set;}
}
如果我现在向MyObject添加一个属性,客户端从新的WSDL创建一个新的代理并使用此属性,Web服务的旧实例是否能够处理它?当然新的属性将是null
,但是会有任何异常吗?
答案 0 :(得分:1)
幸运的是,我刚刚找到时间为这个问题编写一些测试服务。
实际发生的情况是,如果在客户端添加了属性,则会在旧服务上忽略该属性。
即使在客户端删除了一个属性,服务器上也没有异常:该属性只是null
。
答案 1 :(得分:0)
是的,一般来说它会失败。不一定在.NET客户端上(它相当宽松),但其他客户端将失败。
答案 2 :(得分:0)
这是一个很好的问题,为此+1。
我从未尝试过,但我会说它可能会奏效。请告诉我们结果:)