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

分享

c#讀取天氣預報的web server

 奔跑360 2014-07-11

http://www./WebServices/WeatherWebService.asmx

里面有天氣的圖標。

添加WebServiceHelper.cs

[c-sharp] view plaincopy
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using System.IO;  
  6. using System.Configuration;  
  7. using System.CodeDom;  
  8. using System.CodeDom.Compiler;  
  9. using System.Net;  
  10. using System.Web.Services;  
  11. using System.Web.Services.Description;  
  12. using Microsoft.CSharp;  
  13.   
  14.   
  15. namespace ZJPortGisLib  
  16. {  
  17.     public static class WebServiceHelper  
  18.     {  
  19.   
  20.         /// <summary>     
  21.   
  22.         /// 動態(tài)調(diào)用WebService     
  23.   
  24.         /// </summary>     
  25.   
  26.         /// <param name="url">WebService地址</param>     
  27.   
  28.         /// <param name="methodname">方法名(模塊名)</param>     
  29.   
  30.         /// <param name="args">參數(shù)列表</param>     
  31.   
  32.         /// <returns>object</returns>     
  33.   
  34.         public static object InvokeWebService(string url, string methodname, object[] args)  
  35.         {  
  36.   
  37.             return InvokeWebService(url, null, methodname, args);  
  38.   
  39.         }  
  40.   
  41.         /// <summary>     
  42.   
  43.         /// 動態(tài)調(diào)用WebService     
  44.   
  45.         /// </summary>     
  46.   
  47.         /// <param name="url">WebService地址</param>     
  48.   
  49.         /// <param name="classname">類名</param>     
  50.   
  51.         /// <param name="methodname">方法名(模塊名)</param>     
  52.   
  53.         /// <param name="args">參數(shù)列表</param>     
  54.   
  55.         /// <returns>object</returns>     
  56.   
  57.         public static object InvokeWebService(string url, string classname, string methodname, object[] args)  
  58.         {  
  59.   
  60.             string @namespace = "ServiceBase.WebService.DynamicWebLoad";  
  61.   
  62.             if (classname == null || classname == "")  
  63.             {  
  64.   
  65.                 classname = WebServiceHelper.GetClassName(url);  
  66.   
  67.             }  
  68.   
  69.             //獲取服務描述語言(WSDL)     
  70.   
  71.             WebClient wc = new WebClient();  
  72.   
  73.             Stream stream = wc.OpenRead(url + "?WSDL");  
  74.   
  75.             ServiceDescription sd = ServiceDescription.Read(stream);  
  76.   
  77.             ServiceDescriptionImporter sdi = new ServiceDescriptionImporter();  
  78.   
  79.             sdi.AddServiceDescription(sd, """");  
  80.   
  81.             CodeNamespace cn = new CodeNamespace(@namespace);  
  82.   
  83.             //生成客戶端代理類代碼     
  84.   
  85.             CodeCompileUnit ccu = new CodeCompileUnit();  
  86.   
  87.             ccu.Namespaces.Add(cn);  
  88.   
  89.             sdi.Import(cn, ccu);  
  90.             CSharpCodeProvider csc = new CSharpCodeProvider();  
  91.   
  92.             ICodeCompiler icc = csc.CreateCompiler();  
  93.   
  94.             //設定編譯器的參數(shù)     
  95.   
  96.             CompilerParameters cplist = new CompilerParameters();  
  97.   
  98.             cplist.GenerateExecutable = false;  
  99.   
  100.             cplist.GenerateInMemory = true;  
  101.   
  102.             cplist.ReferencedAssemblies.Add("System.dll");  
  103.   
  104.             cplist.ReferencedAssemblies.Add("System.XML.dll");  
  105.   
  106.             cplist.ReferencedAssemblies.Add("System.Web.Services.dll");  
  107.   
  108.             cplist.ReferencedAssemblies.Add("System.Data.dll");  
  109.   
  110.             //編譯代理類     
  111.   
  112.             CompilerResults cr = icc.CompileAssemblyFromDom(cplist, ccu);  
  113.   
  114.             if (true == cr.Errors.HasErrors)  
  115.             {  
  116.                 System.Text.StringBuilder sb = new StringBuilder();  
  117.                 foreach (CompilerError ce in cr.Errors)  
  118.                 {  
  119.                     sb.Append(ce.ToString());  
  120.                     sb.Append(System.Environment.NewLine);  
  121.                 }  
  122.   
  123.                 throw new Exception(sb.ToString());  
  124.             }  
  125.             //生成代理實例,并調(diào)用方法     
  126.   
  127.             System.Reflection.Assembly assembly = cr.CompiledAssembly;  
  128.   
  129.             Type t = assembly.GetType(@namespace + "." + classname, truetrue);  
  130.   
  131.             object obj = Activator.CreateInstance(t);  
  132.             System.Reflection.MethodInfo mi = t.GetMethod(methodname);  
  133.   
  134.             return mi.Invoke(obj, args);  
  135.         }  
  136.   
  137.         private static string GetClassName(string url)  
  138.         {  
  139.             string[] parts = url.Split('/');  
  140.             string[] pps = parts[parts.Length - 1].Split('.');  
  141.             return pps[0];  
  142.         }  
  143.     }  
  144.   
  145. }  

調(diào)用

[c-sharp] view plaincopy
  1. //天氣初始化   
  2.         private void WeatherLoad()  
  3.         {  
  4.             string url = "http://www./WebServices/WeatherWebService.asmx";  
  5.             string[] arg = new string [1];  
  6.             arg[0] = "杭州";  
  7.             try  
  8.             {  
  9.                 object weather = ZJPortGisLib.WebServiceHelper.InvokeWebService(url, "getWeatherbyCityName", arg);  
  10.                 string[] h = (string[])weather;  
  11.                 this.Literal1.Text = "<li><img src="Images/weather/a_" + h[9] + "" mce_src="Images/weather/a_" + h[9] + "" style='width:20px;height:20px;' /></li><li>" + Weather(h[6]) + "</li><li>" + WeatherTemp(h[5]) + "</li>";  
  12.             }  
  13.             catch (Exception ex)  
  14.             {  
  15.             }  
  16.         }  
  17.   
  18.         //切分天氣文字   
  19.         private string Weather(string wea)  
  20.         {  
  21.             string[] arr = wea.Split(' ');  
  22.             if (arr.Length == 2)  
  23.             {  
  24.                 return arr[1].ToString().Trim();  
  25.             }  
  26.             return "";  
  27.         }  
  28.   
  29.         //切分溫度   
  30.         private string WeatherTemp(string tem)  
  31.         {  
  32.             string[] arr = tem.Split('/');  
  33.             if (arr.Length == 2)  
  34.             {  
  35.                 return arr[0].ToString().Trim() + "-" + arr[1].ToString().Trim();  
  36.             }  
  37.             return "";  
  38.         }  

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多