关于为什么web service 构造函数只能是无参数构造函数问题的解答

今天有人提出一问题,为什么web service的构造函数不能够传递参数进去呢?即使在代码里面重写了带参数的构造函数也无用。为什么呢?
仔细分析webervice的机制就能发现其实这个是必须的:
在.net当中webservice客户端只是在本地生成了一个代理类,这个代理类封装并维护与服务器端的通信。当你在本地创建一个webservice类实例的时候,创建的其实是本地的代理类的实例,这个时候并没有跟服务器端进行通信,无法将参数传送到服务器端,并且只有你在真正调用web service方法的时候,才与服务器端进行了通信。
测试验证结果:
编写一个客户端和服务器端,将断点设置在客户端创建服务实例的地方,启用fildder,跟踪http,你可以发现,当执行完创建webservice实例的时候,fildder没有跟踪到通信,当代码运行到调用服务器端方法的时候,可以发现已经发送了一个soap请求过去了,并有xml的响应回来。结论:在.net中,当在本地创建web service实例的时候是没有与服务器端进行通信的,也就没有办法传递参数给服务器端,只有当真正调用webservice方法的时候才与服务器端进行通信,所以webservice是无法使用带参数的构造函数的。
不过有个变通的方法,那就是用一个web方法执行你想传递参数的代码就可以,也就是一个假的带参数构造函数。

转载于:https://www.cnblogs.com/silverlighter/archive/2007/07/18/822146.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值