文档详情

winform中对webservice的调用.docx

发布:2017-07-10约4.78千字共4页下载文档
文本预览下载声明
winform中对webservice的调用一般情况下winform调用webservice时步骤1添加服务引用---高级----添加web引用------填写url--添加web引用即可完成对webservice的引用让VS.NET环境来为我们生成服务代理,然后调用对应的Web服务。如果需要动态调用WebService,要实现这样的功能:publicstaticobjectInvokeWebService(stringurl, stringmethodname,object[] args)其中,url是Web服务的地址,methodname是要调用服务方法名,args是要调用Web服务所需的参数,返回值就是web服务返回的结果了。 要实现这样的功能,你需要这几个方面的技能:反射、CodeDom、编程使用C#编译器、WebService。在了解这些知识后,就可以容易的实现web服务的动态调用了:using System;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;using System.IO;using System.Net;usingSystem.CodeDom;usingSystem.CodeDom.Compiler;usingSystem.Web.Services.Description;usingMicrosoft.CSharp;namespaceNetbankTMP{public static class WebServiceHelper { /// summary /// 动态调用WebService /// /summary /// param name=urlWebService地址/param /// param name=methodname方法名(模块名)/param /// param name=args参数列表,无参数为null/param /// returnsobject/returnspublic static object InvokeWebService(string url, string methodname, object[] args) {returnInvokeWebService(url, null, methodname, args); } /// summary /// 动态调用WebService /// /summary /// param name=urlWebService地址/param /// param name=classname类名/param /// param name=methodname方法名(模块名)/param /// param name=args参数列表/param /// returnsobject/returnspublic static object InvokeWebService(string url, string classname, string methodname, object[] args) {string @namespace = fangqm.Netbank.WebService.webservice;if (classname == null || classname == ) {classname = WebServiceHelper.GetClassName(url); } //获取服务描述语言(WSDL)WebClientwc = new WebClient(); Stream stream = wc.OpenRead(url+?WSDL);//【1】ServiceDescriptionsd = ServiceDescription.Read(stream);//【2】ServiceDescriptionImportersdi = new ServiceDescriptionImporter();//【3】sdi.AddServiceDescription(sd, , );CodeNamespacecn = new CodeNamespace(@namespace);//【4】 //生成客户端代理类代码CodeCompileUnitccu = new CodeCompileUnit();//【5】ccu.Namespaces.Add(cn);sdi
显示全部
相似文档