久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

c# 動(dòng)態(tài)調(diào)用.net編寫(xiě)的webservices接口

 奔跑360 2014-07-11

創(chuàng)建類(lèi)WebServiceHelper:

public class WebServiceHelper
    {
        #region 動(dòng)態(tài)調(diào)用WebService動(dòng)態(tài)調(diào)用地址
        /// < summary>           
        /// 動(dòng)態(tài)調(diào)用web服務(wù)         
        /// < /summary>          
        /// < param name="url">WSDL服務(wù)地址< /param> 
        /// < param name="methodname">方法名< /param>           
        /// < param name="args">參數(shù)< /param>           
        /// < returns>< /returns>          
        public static object InvokeWebService(string url, string methodname, object[] args)
        {
            return WebServiceHelper.InvokeWebService(url, null, methodname, args);
        }
       /// <summary>
       /// 動(dòng)態(tài)調(diào)用web服務(wù)
       /// </summary>
        /// <param name="url">WSDL服務(wù)地址</param>
       /// <param name="classname">服務(wù)接口類(lèi)名</param>
        /// <param name="methodname">方法名</param>
       /// <param name="args">參數(shù)值</param>
       /// <returns></returns>
        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);
                //注意classname一定要賦值獲取 
                 classname = sd.Services[0].Name; 
              
                ServiceDescriptionImporter sdi = new ServiceDescriptionImporter();
                sdi.AddServiceDescription(sd, "", "");
                CodeNamespace cn = new CodeNamespace(@namespace);

                //生成客戶(hù)端代理類(lèi)代碼          
                CodeCompileUnit ccu = new CodeCompileUnit();
                ccu.Namespaces.Add(cn);
                sdi.Import(cn, ccu);
                CSharpCodeProvider icc = new CSharpCodeProvider();
                

                //設(shè)定編譯參數(shù)                 
                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");
                //編譯代理類(lèi)                 
                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());
                }
                //生成代理實(shí)例,,并調(diào)用方法                 
                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));
               // return "Error:WebService調(diào)用錯(cuò)誤,!" + ex.Message;
            }
        }
        private static string GetWsClassName(string wsUrl)
        {
            string[] parts = wsUrl.Split('/');
            string[] pps = parts[parts.Length - 1].Split('.');
            return pps[0];
        }
        #endregion
    }
}

 

 

 調(diào)用操作:

         /// <summary>
         /// 調(diào)用操作
          /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
#region 動(dòng)態(tài)調(diào)用 webservices地址 try { object[] args = new object[3]; args[0] = ("參數(shù)一"); args[1] = ("參數(shù)二"); args[2] = ("參數(shù)三"); object result = WebServiceHelper.InvokeWebService("http://112.160.100.110:8000/Service1.asmx", "服務(wù)方法:send_message", args); string message = result.ToString(); } catch { } #endregion }

 

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多