webservice 调用重载的方法出错--messagename

问题描述

大家好,通过这个调用webservice,调用方法名是没有问题的。但是调用重载的方法时,mi为空。求大神指点指点啊!弄了一天了!string@namespace="EnterpriseServerBase.WebService.DynamicWebCalling";if((classname==null)||(classname=="")){classname=WebServiceHelper.GetWsClassName(url);}try{//获取WSDLWebClientwc=newWebClient();Streamstream=wc.OpenRead(url+"?WSDL");ServiceDescriptionsd=ServiceDescription.Read(stream);//注意classname一定要赋值获取classname=sd.Services[0].Name;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;Typetype=assembly.GetType(@namespace+"."+classname,true,true);objectobj=Activator.CreateInstance(type);System.Reflection.MethodInfomi=type.GetMethod(methodname);returnmi.Invoke(obj,args);}catch(Exceptionex){thrownewException(ex.InnerException.Message,newException(ex.InnerException.StackTrace));//return"Error:WebService调用错误!"+ex.Message;}}

解决方案

解决方案二:
问题已经解决

时间: 2024-10-28 15:36:21

webservice 调用重载的方法出错--messagename的相关文章

PL/SQL小技巧一个:在子类中怎么调用父类被重载的方法

技巧 在C++和Java中,这是非常容易实现的C++是:父类名::被重载的方法(参数表), 比如:      ancestorclass::name({arguments});而在Java中,可以用super代替父类,如这样实现      Super.name({arguments}); 而在Oracle 9i Release2中都没实现这样的功能,当然我们可以用其它办法来实现这样的功能. 父类对象类型Create or Replace Type parent as object (      

C# ASP.NET Webservice调用外部exe无效的解决方法

原文:C# ASP.NET Webservice调用外部exe无效的解决方法 最近用asp.net做webservice,其中有个功能是调用执行外部的exe(类似cmd中执行),但执行Process.Start之后就没有结果,同样代码在winform下正常,折腾两天终于找到解决方法 本文参考了以下网页,十分感谢 http://bbs.csdn.net/topics/300053869 http://blog.163.com/qiaoweipeng@126/blog/static/15737970

一段代码,父类调用了子类重载的方法,求解释。

问题描述 public class Person {public void fight(){System.out.println("Person战斗");say();}public void say(){System.out.println("Person说话");}} public class Student extends Person {@Overridepublic void fight() {System.out.println("Student

c#-C# 调用setupapi.dll里的方法出错

问题描述 C# 调用setupapi.dll里的方法出错 写的程序中调用了,如下代码 [DllImport("setupapi.dll", SetLastError = true)] public static extern bool SetupDiEnumDeviceInfo(IntPtr lpInfoSet, UInt32 dwIndex, SP_DEVINFO_DATA devInfoData); 可是不知为什么,这段代码在我的笔记本上测试有问题,产生不了正常结果.我的笔记本是W

wsdl-axis1.4调用webservice 传递自定义对象参数出错

问题描述 axis1.4调用webservice 传递自定义对象参数出错 调用客户端后出现: org.xml.sax.SAXException: Invalid element in cn.services.QueryEquipmentRequest - queryEquipmentRequest 客户端代码(其中queryEquipmentRequest,QueryEquipmentResponse是我自定义的对象): call.addParameter(new QName(nameSpace

php调用webservice的几种方法

原文:php调用webservice的几种方法 1.WSDL模式: extension = php_soap.dll extension = php_curl.dll extension = php_openssl.dll <?php header("content-type:text/html;charset=utf-8"); $client = new SoapClient("http://url/ooxx.asmx?wsdl"); $param = ar

webservice-2008 r2 64位系统 WebService调用出错 the resource cannot be found

问题描述 2008 r2 64位系统 WebService调用出错 the resource cannot be found 2008 r2 64位系统 WebService调用出错 the resource cannot be found description: http: 404.等错误信息 2008 32位系统上测试是没问题,win7 下也是没有问题的.

[翻译]通过WebService调用SQLXML(SQL Server 2005)

问题描述 [翻译]通过WebService调用SQLXML(SQLServer2005)原文发布日期:2007.02.04作者:RussQuinn翻译:webabcd介绍我最近需要给用户创建一个feed,所有的数据都是放在sqlserver数据库里的,所以我疯狂的查找把sqlserver里的数据转换成xml的最快速的方法.现在我知道了xml已经成为了sqlserver2005的一部分.之后我萌生出了一个主意,就是创建一个webservice用于数据库转xml的服务,这样用户就可以在任何时候调用他

异步调用Web服务方法

基于Ajax技术构建的门户是web 2.0这一代中最为成功的Web应用程序.而这块市场上iGoogle和Pageflakes这两大站点已经走在了时代的前列. 当你打开Pageflakes,将会看到如下的界面: 接下来就是界面上的各个"部件"去向服务器请求各种web服务,而服务器作为代理,则代为向外部web服务发出请求.(这是因为ajax调用无法跨越,所以常通过代理来请求数据) 问题场景:某个很受用户欢迎的"部件"很长时间不能执行,导致很对请求无法及时执行,引起请求失