问题描述
用的是网上很多人说的方法:///<summary>///根据指定的信息,调用远程WebService方法///</summary>///<paramname="url">WebService的http形式的地址</param>///<paramname="namespace">欲调用的WebService的命名空间</param>///<paramname="classname">欲调用的WebService的类名(不包括命名空间前缀)</param>///<paramname="methodname">欲调用的WebService的方法名</param>///<paramname="args">参数列表</param>///<returns>WebService的执行结果</returns>///<remarks>///如果调用失败,将会抛出Exception。请调用的时候,适当截获异常。///异常信息可能会发生在两个地方:///1、动态构造WebService的时候,CompileAssembly失败。///2、WebService本身执行失败。///</remarks>///<example>///<code>///objectobj=InvokeWebservice("http://localhost/GSP_WorkflowWebservice/common.asmx","Genersoft.Platform.Service.Workflow","Common","GetToolType",newobject[]{"1"});///</code>///</example>publicstaticobjectInvokeWebservice(stringurl,string@namespace,stringclassname,stringmethodname,object[]args){System.Net.WebClientwc=newSystem.Net.WebClient();System.IO.Streamstream=wc.OpenRead(url+"?WSDL");System.Web.Services.Description.ServiceDescriptionsd=System.Web.Services.Description.ServiceDescription.Read(stream);System.Web.Services.Description.ServiceDescriptionImportersdi=newSystem.Web.Services.Description.ServiceDescriptionImporter();sdi.AddServiceDescription(sd,"","");System.CodeDom.CodeNamespacecn=newSystem.CodeDom.CodeNamespace(@namespace);System.CodeDom.CodeCompileUnitccu=newSystem.CodeDom.CodeCompileUnit();ccu.Namespaces.Add(cn);sdi.Import(cn,ccu);Microsoft.CSharp.CSharpCodeProvidercsc=newMicrosoft.CSharp.CSharpCodeProvider();System.CodeDom.Compiler.ICodeCompilericc=csc.CreateCompiler();System.CodeDom.Compiler.CompilerParameterscplist=newSystem.CodeDom.Compiler.CompilerParameters();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");System.CodeDom.Compiler.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;//在构建一个java写的WebService下面这行抛出了异常Typet=assembly.GetType(@namespace+"."+classname,true,true);objectobj=Activator.CreateInstance(t);System.Reflection.MethodInfomi=t.GetMethod(methodname);returnmi.Invoke(obj,args);}异常信息为:未能从程序集“rppj7ib3,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null”中加载类型“Account”。各位看看最可能什么地方出错了?谢了先
解决方案
解决方案二:
自己顶一下,怎么没人关注咧
解决方案三:
该回复于2009-01-19 16:30:28被版主删除