全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
完全动态处理,传入服务服务网址,方法名和参数即可. usingSystem; usingSystem.Net; usingSystem.IO; usingSystem.CodeDom; usingMicrosoft.CSharp; usingSystem.CodeDom.Compiler; usingSystem.Web.Services.Description; usingSystem.Web.Services.Protocols; namespaceHB.Common /*调用方式 *stringurl=/globalweather.asmx; *stringargs=newstring2; *args0=Hangzhou; *args1=China; *objectresult=WebServiceHelper.InvokeWebService(url,GetWeather,args); *Response.Write(result.ToString(); */ publicclassWebServiceHelper #regionInvokeWebService / /动态调用web服务 / /WSDL服务地址 /方法名 /参数 / publicstaticobjectInvokeWebService(stringurl,stringmethodname,objectargs) returnWebServiceHelper.InvokeWebService(url,null,methodname,args); / /动态调用web服务 / /WSDL服务地址 /类名 /方法名 /参数 / publicstaticobjectInvokeWebService(stringurl,stringclassname,stringmethodname,objectargs) stringnamespace=EnterpriseServerBase.WebService.DynamicWebCalling; if(classname=null)|(classname=) classname=WebServiceHelper.GetWsClassName(url); try /获取WSDL WebClientwc=newWebClient(); Streamstream=wc.OpenRead(url+?WSDL); ServiceDescriptionsd=ServiceDescription.Read(stream); ServiceDescriptionImportersdi=newServiceDescriptionImporter(); sdi.AddServiceDescription(sd,); CodeNamespacecn=newCodeNamespace(namespace); /生成客户端代理类代码 CodeCompileUnitccu=newCodeCompileUnit(); ccu.Namespaces.Add(cn); sdi.Import(cn,ccu); CSharpCodeProvidericc=newCSharpCodeProvider(); /设定编译参数 CompilerParameterscplist=newCompilerParameters(); cplist.GenerateExecutable=false; cplist.GenerateInMemory=true; cplist.ReferencedAssemblies.Add(System.dll); cplist.ReferencedAssemblies.Add(System.XML.dll); cplist.ReferencedAssemblies.Add(System.Web.Services.dll); cplist.ReferencedAssemblies.Add(System.Data.dll); /编译代理类 CompilerResultscr=icc.CompileAssemblyFromDom(cplist,ccu); if(true=cr.Errors.HasErrors) System.Text.StringBuildersb=newSystem.Text.StringBuilder(); foreach(System.CodeDom.Compiler.CompilerErrorceincr.Errors) sb.Append(ce.ToString(); sb.Append(System.Environment.NewLine); thrownewException(sb.ToString(); /生成代理实例,并调用方法 System.Reflection.Assemblyassembly=cr.CompiledAssembly; Typet=assembly.GetType(namespace+.+classname,true,true); objectobj=Activator.CreateInstance(t); System.Reflection.MethodInfomi=t.GetMethod(methodname); returnmi.Invoke(obj,args); /* PropertyInfopropertyInfo=type.GetProperty(propertyname); returnpropertyInfo.GetValue(obj,null); */ catch(Exceptionex) thrownewException(ex.InnerException.Message,newException(ex.InnerException.StackTrace); privatestaticstringGetWsClassName(stringwsUrl) stringparts=wsUrl.Split(/); stringpps=partsparts.Length-1.Split(.); returnpps0; #endregion 返回时如果不是字符串,即强制转换,如返回是DataSet,则 stringurl=/globalweather.asmx; stringa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 矿买卖合同范本
- 投资拓展方案
- 医疗前线防护服传染病专用
- 老年高血压-诊断与治疗的新进展
- 超声医学临床应用-运动医学诊断
- 《科技企业疫情防控预案》
- 传染病分类解析:商务楼宇防疫指南
- 2017-5 对消防水泵控制电路图的再思考(李顺康)-石家庄
- 高血压综合管理:企业健康管理策略
- 瓜蒌种植:病虫害防治工作总结
- 浅谈电磁波在生活中的应用
- 某公司组织结构诊断咨询报告(doc 18页)
- 新教科版三年级下册科学《2.4蚕变了新模样》课件
- 高考地理二轮复习综合题答题模板特征描述型综合题PowerPoint 演示文稿
- 大羽毛ppt课件
- ASTM A材质规格对照表
- 保罗乔治的故事
- 本地使用证明
- 氯丁橡胶粘合剂
- 课本剧哈姆雷特剧本
- 南昌市湾里区总体规划说明书
评论
0/150
提交评论