#region InvokeWebService
        //动态调用web服务
        public static object InvokeWebService(string url, string methodname, object[] args)
         {
            return WebServiceHelper.InvokeWebService(url ,null ,methodname ,args) ;
         }        public static object InvokeWebService(string url,  string classname, string methodname, object[] args)
         {
            string @namespace = "EnterpriseServerBase.WebService.DynamicWebCalling" ;
            if((classname == null) ||(classname == ""))
             {
                 classname = WebServiceHelper.GetWsClassName(url) ;
             }            try
             {
                //获取WSDL
                 WebClient wc                   = new WebClient();
                 Stream stream                  = wc.OpenRead(url+"?WSDL");
                 ServiceDescription sd          = ServiceDescription.Read(stream);
                 ServiceDescriptionImporter sdi = new ServiceDescriptionImporter();
                 sdi.AddServiceDescription(sd,"","");
                 CodeNamespace cn                = new CodeNamespace(@namespace);
                
                //生成客户端代理类代码
                 CodeCompileUnit ccu             = new CodeCompileUnit();
                 ccu.Namespaces.Add(cn);
                 sdi.Import(cn ,ccu); 
                 CSharpCodeProvider csc          = new CSharpCodeProvider();
                 ICodeCompiler icc               = csc.CreateCompiler();
                
                //设定编译参数
                 CompilerParameters cplist       = new 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");                //编译代理类
                 CompilerResults cr = icc.CompileAssemblyFromDom(cplist, ccu);
                if(true == cr.Errors.HasErrors)
                 {
                     System.Text.StringBuilder sb = new System.Text.StringBuilder();
                    foreach(System.CodeDom.Compiler.CompilerError ce in cr.Errors)
                     {
                         sb.Append(ce.ToString());
                         sb.Append(System.Environment.NewLine);
                     }
                    throw new Exception(sb.ToString());
                 }                //生成代理实例,并调用方法
                 System.Reflection.Assembly assembly = cr.CompiledAssembly;
                 Type t = assembly.GetType(@namespace+"."+classname,true,true);
                object obj = Activator.CreateInstance(t);
                 System.Reflection.MethodInfo mi = t.GetMethod(methodname);                return mi.Invoke(obj,args);
             }
            catch(Exception ex)
             {
                throw new Exception(ex.InnerException.Message,new Exception(ex.InnerException.StackTrace));
             }
         }        private static string GetWsClassName(string wsUrl)
         {
            string[] parts = wsUrl.Split('/') ;
            string[] pps   = parts[parts.Length-1].Split('.') ;            return pps[0] ;
         }
        #endregion这段代码我用来动态访问c# 写的能。但是访问java提供的webservice的时候 运行到57行: Type t = assembly.GetType(@namespace+"."+classname,true,true);
这里返回为空,所以就报错了。  不知道什么原因。 java不存在命名空间问题。但是该如何获取type呢? 或者用什么方式可以调用成功呢?希望帮忙解答谢谢 Web服务异常URL