是否可以在不破坏客户端的情况下更改asmx Web服务的参数名称?例如,考虑一个具有如下Web方法的遗留服务:
[WebMethod]
public string HelloWorld(string NAME)
{
return "Hello World and " + NAME;
}
传统服务网络方法具有参数NAME,但我想将其更改为“名称”以遵循编码指南。这会破坏现有的客户吗?
答案 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的旧名称。