欢迎来到天天文库
浏览记录
ID:40746868
大小:67.50 KB
页数:8页
时间:2019-08-07
《C# 动态调用Web Service》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、整理,内容来源于网络及本人实践】前面整理了一篇关于VS2008实现简单的WebService的文章,但里面的调用是静态的,当服务地址更改后,需要重新编译程序,对于很多应用来说是不现实的。本文介绍一下C#动态调用WebService的方法。1.实现写个叫WebServiceHelper的类[csharp]viewplaincopyprint?1.namespacewebhelp2.{3.usingSystem;4.usingSystem.Net;5.usingSystem.IO;6.usingSystem.CodeDom;7.usingMicrosoft.CShar
2、p;8.usingSystem.CodeDom.Compiler;9.usingSystem.Web.Services.Description;10.usingSystem.Web.Services.Protocols;11.publicclassWebServiceHelper12.{13.#regionInvokeWebService14.15.publicstaticobjectInvokeAndCallWebService(stringurl,stringmethodname,object[]args)16.{17.returnWebServiceHelp
3、er.InvokeAndCallWebService(url,null,methodname,args);18.}19.publicstaticobjectInvokeAndCallWebService(stringurl,/*string@namespace,*/stringclassname,stringmethodname,object[]args)20.{21.string@namespace="EnterpriseServerBase.WebService.DynamicWebCalling";22.if((classname==null)
4、
5、(clas
6、sname==""))23.{1.classname=WebServiceHelper.GetWsClassName(url);2.}3.4.try5.{6.//获取WSDL7.WebClientwebClient=newWebClient();8.Streamstream=webClient.OpenRead(url+"?WSDL");9.ServiceDescriptiondescription=ServiceDescription.Read(stream);10.ServiceDescriptionImporterdescriptionImporter=ne
7、wServiceDescriptionImporter();11.descriptionImporter.AddServiceDescription(description,"","");12.CodeNamespacecodeNamespace=newCodeNamespace(@namespace);13.14.//生成客户端代理类代码15.CodeCompileUnitcodeCompileUnit=newCodeCompileUnit();16.codeCompileUnit.Namespaces.Add(codeNamespace);17.descrip
8、tionImporter.Import(codeNamespace,codeCompileUnit);18.CSharpCodeProvidercodeProvider=newCSharpCodeProvider();19.20.//设定编译参数21.CompilerParameterscompilerParameters=newCompilerParameters();22.compilerParameters.GenerateExecutable=false;23.compilerParameters.GenerateInMemory=true;24.comp
9、ilerParameters.ReferencedAssemblies.Add("System.dll");25.compilerParameters.ReferencedAssemblies.Add("System.XML.dll");26.compilerParameters.ReferencedAssemblies.Add("System.Web.Services.dll");27.compilerParameters.ReferencedAssemblies.Add("System.Data.dll");28.29.//编译代理类30.CompilerRe
10、sults
此文档下载收益归作者所有