Xml WebService完全執行個體解析(4)

來源:互聯網
上載者:User
接上篇文章,我們先簡單說明下綁定函數.首先執行個體化ServiceA,這個和一般類的執行個體化並沒有不同..接下來用xmlNode1來接受函數的傳回值,接下來是構造xml,並將其轉化為dataset,這是通用的方法,如果是剛接觸不久的朋友,最好能記下這種方法.
  
  接下來給出非同步呼叫兩個服務的代碼
  
  //綁定資料
  
  public void BindData()
  {
  IAsyncResult ar1;
  IAsyncResult ar2;
  serviceA=new SiteA.Service1();
  serviceB=new SiteB.Service1();
  DataSet ds=new DataSet();
  XmlNode xmlNode1,xmlNode2;
  XmlDataDocument xd=new XmlDataDocument();
  StringBuilder xmlString1,xmlString2;
  
  //--簡單的非同步呼叫
  
  ar1=serviceA.BeginGetSiteAData(strSearch,null,null);
  ar2=serviceB.BeginGetSiteAData(strSearch,null,null);
  xmlNode1=serviceA.EndGetSiteAData(ar1);
  xmlNode2=serviceB.EndGetSiteAData(ar2);
  //----------
  if(xmlNode1==null&&xmlNode2==null) //--預存程序執行失敗
  return;
  
  xmlString1=new StringBuilder(xmlNode1.OuterXml);
  xmlString2=new StringBuilder(xmlNode2.OuterXml);
  xmlString1=MakeNewXmlString(xmlString1,xmlString2); //產生新的xml
  if(xmlString1.ToString().Equals("<NewDataSet xmlns=\"\"></NewDataSet>"))
  return ;
  xd.LoadXml(xmlString1.ToString());
  ds.ReadXml(new XmlNodeReader(xd));
  DataGrid1.DataSource=ds.Tables["list"].DefaultView;
  DataGrid1.DataBind();
  }
  
  //產生新XML
  
  public StringBuilder MakeNewXmlString(StringBuilder str1,StringBuilder str2)
  {
  str1=str1.Replace("</NewDataSet>","");
  str2=str2.Replace("<NewDataSet xmlns=\"\">","");
  str1.Append(str2.ToString());
  return str1;
  }
  
  這有兩個需要注意的地方,一個是xml構造,還有就是非同步呼叫的實現,請讀者,自己理解
  
  下面講下通過dll來引用webservice的方法,我只把流程介紹下.
  
  首先,在ie輸入服務的地址,如:http://www.xxx.com/service.asmx
  
  然後寫輸入http://www.xxx.com/service.asmx?wsdl
  
  開啟後,另存新檔xxx.wsdl
  
  然後用vs的命令提示字元來編譯:wsdl /namespace:SiteA ServiceA.wsdl
  
  產生名字空間為sitea的代理類
  
  最後csc /out:ServiceA.dll /t:library Service1.cs ,其中service1.cs為代理類檔案
  
  最後引用dll就可以了.
  
  到這裡,我們的例子基本也就介紹完了,由於個人的原因,最後一篇可能寫的比較倉促,非常慚愧.

        如果你有什麼需要協助的或是疑惑的地方,可以wiseman.net@gmail.com聯絡我,如果上網的話,一定會回的.

From:IT實驗室

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.