C# 当我向参数添加属性时,.NETWebService是否会中断?

C# 当我向参数添加属性时,.NETWebService是否会中断?,c#,.net,web-services,C#,.net,Web Services,我有一个.NETWebService,它承载一个名为AddMyObject的方法 [WebMethod] public void AddMyObject(MyObject[] objects){...} 其中MyObject被声明为 public class MyObject { public string Pro1{get;set;} public string Pro2{get;set;} } 如果我现在向MyObject添加一个属性,客户端将从新的WSDL创建一个新的代

我有一个.NETWebService,它承载一个名为AddMyObject的方法

[WebMethod]
public void AddMyObject(MyObject[] objects){...}
其中MyObject被声明为

public class MyObject
{
    public string Pro1{get;set;}
    public string Pro2{get;set;}
}

如果我现在向MyObject添加一个属性,客户端将从新的WSDL创建一个新的代理并使用该属性,那么Webservice的旧实例是否能够处理它?当然,新属性将是
null
,但会有任何异常吗?

是的,通常会失败。不一定是在.NET客户端上(这是相当宽松的),但是其他客户端会失败。

这是一个好问题,+1


我从未尝试过,但我想说它可能会奏效。请告诉我们结果:)

幸运的是,我刚刚抽出时间为这个问题编写了一个小测试服务

实际发生的情况是,如果在客户端添加了一个属性,则在旧服务上会忽略它


即使在客户端删除了某个属性,服务器上也没有例外:该属性只是
null

请注意,您可以在WCF中对此进行更多控制,在WCF中,您可以根据需要标记内容。如果您的客户端是Apache axis,则所有这些都是不同的