尊重原著作:本文转载自
有经验的朋友都知道,通常我们在引用webservice的时候,是在项目中就添加了引用,但是如果一但这个webservice有变动,怎么办?重新打开项目重新引用,重新编译?这是不是太麻烦了,如果对方升级频繁,那我要改项目要改死。怎么解决这样的问题呢?
今天我们就来讲一下动态的引用webservice为此我们需要在web.config中动态配置WebService的地址
首先手动的添加一个Web引用(这个就不用说了吧)
然后修改本地的代理类(添加一个新类,继承你的 WebService代理类)
namespace Web_Service{ [System.Diagnostics.DebuggerStepThrough(),System.ComponentModel.DesignerCategory("code"), System.Web.Services.WebServiceBinding(Name = "", Namespace = "")] public class DynWebService : SelfWebService { public DynWebService() : base() { //设置默认webService的地址 this.Url = "http://localhost/WebService.asmx"; } public DynWebService(string webUrl) : base() { this.Url = webUrl; } }}
说明:SelfWebService 你引用的 WebService。Web Service的URI部署到配置文件里
<add key="WebServiceKey"value="http://www.mhzg.net/WebService.asmx"/>
最后实现
private void WebServiceTest(){ string webServiceUrl = ConfigurationManager.AppSettings["WebServiceKey "].ToString(); Web_Service.DynWebService dws = new Web_Service.DynWebService(webServiceUrl); string result = dws.HelloWorld();}