20110310 学习记录:Webservice重载

之前的webservice没有设计好,现在需要在原来的ws上增加一个参数,可是原有的ws已经有客户在用,没有缘由的不好让客户改代码,于是本来想是可不可以重载一下,然后用两个不同参数个数的webmethod来解决这个问题,结果查了一下发现,重载是没有问题的,只是在我看来,这个重载实在是有名无实的重载...........

 

所谓重载,就是在webmethod同名的同时,必须要由MessageName重新指定别名,而这个别名则必须必须是唯一的不能重复,一旦指定别名,原来的方法名就无效了,一切以别名为准!

如下例,原来是HelloWorld,但是如果指定别名后,一个叫HelloWorld1一个叫HelloWorld2,如果传值给 http://...xx.asmx/HelloWorld?msg=xxxx 这样是一定会报错的,因为已经没有HelloWord这个方法名了,url那里要写HelloWorld2才行...

于是这个所谓的重载方法对我来说就完全是有名无实了嘛。。。orz

那我直接改方法名好了,还做什么费老大劲整重载哦!- =

可能是我比较笨,实在看不出这种重载到底有什么意义存在。。。囧

 


 

Webservice中的方法重载问题


(1)在要重载的WebMethod上打个MessageName标签
比如:
[WebMethod(MessageName = "HelloWorld1")]
public string HelloWorld(){
    return "HelloWorld";
}

[WebMethod(MessageName = "HelloWorld2")]
public string HelloWorld(string msg){
    return msg + "HelloWorld";
}
(2)此外还要在class上修改WebServiceBinding特性,如下:
[WebServiceBinding(ConformsTo = WsiProfiles.None)]
    public class UploadService : System.Web.Services.WebService
    {
        ...
    }

 

 


http://tech.ddvip.com/2009-03/1238382843112811_3.html

转载于:https://www.cnblogs.com/neru/archive/2011/03/11/1981469.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值