是否可以在不破坏客户端的情况下更改asmx Web服务的参数名称

时间:2013-04-24 14:22:36

标签: asp.net web-services wsdl asmx

是否可以在不破坏客户端的情况下更改asmx Web服务的参数名称?例如,考虑一个具有如下Web方法的遗留服务:

 [WebMethod]
 public string HelloWorld(string NAME)
 {
      return "Hello World and " + NAME;
 }

传统服务网络方法具有参数NAME,但我想将其更改为“名称”以遵循编码指南。这会破坏现有的客户吗?

1 个答案:

答案 0 :(得分:1)

最简单的可能是添加新方法

 //New clients use this Maybe you put it in a new asmx file.
 [WebMethod]
 public string Hello_World(string FullName)
 {
      return HelloWorld(FullName);
 }

//Old clients use this.
[WebMethod]
 public string HelloWorld(string NAME)
 {
      return "Hello World and " + NAME;
 }

WCF具有使方法名称和参数成为一件事的方法,但xml是使用注释的另一种方法。我认为有一种方法可以创建一个可以与传统ASMX客户端通信的WCF服务,我还没有尝试过。在这种情况下,您可以重命名所有方法和参数,并通过属性注释,在线上维护xml的旧名称。