Xml WebService完全實例解析(三)

接上篇文章,我們先簡單解釋下GetSiteAData(string AssignName)函數.

         函數功能很簡單,只是要返回查詢結果,其數據格式是XmlDataDocument.當查詢失敗時(無匹配查詢結果),我們構造一個xml,返回一個空記錄.否則,我們把查詢後的dataset生成一個XmlDataDocument,接下來,由於該項目的需要,我加入了一個循環,添加dataset裏所沒有的節點,站點名稱.在這之後,算是完成了一個符合我們期望格式的xml數據文檔,我們把它返回.

         好了,webservice的方法函數介紹完了(這裏還有個web服務方法,稍後介紹),接下來我們的任務是怎麼調用它了.首先把webservice的項目編譯完成,假定我們這個服務是針對資源站點A的,我們不妨稱其爲ServiceA.先單獨運行asmx文件,執行GetSiteAData(string AssignName)方法,將提示你輸入參數,你輸入要搜索的內容,點確認,將返回給你一個xml數據,並在ie上顯示出來,這就是你搜索到的內容拉.

        這裏對ServiceA的工作再做點介紹,在我們這個項目裏,它是資源站點A提供的服務,意思是,它查詢的數據將全來源於站點A,而站點A資源添加在本項目也有專門的工程實現.

        好了,回到正題.這裏我介紹vs調用webservice的方法,其實其他平臺的調用方法也是大同小異.首先我們介紹web引用方式,這種方式我強烈建議調試時使用,非常方便.右擊引用,點添加web引用,輸入你的webservice地址,如:http://localhost/aspxproject/WebServiceSolution/SiteBService/service1.asmx,你必須保證你輸入的webservice存在.然後引用即可,注意:web引用名將作爲你加入的webservice的名字空間.比如你輸入了:SiteA,那服務的實例化將是這樣:SiteA.Service1 serviceA=new SiteA.Service1();(Service1是服務的類名).

        完成了這一步,service的調用似乎變的那麼簡單,我們已經實現了遠程實例化,接下來的遠程調用也是一樣的容易.下面給出資源採集站ServiceGatherSite的綁定代碼(只採集A站點的信息)

//綁定數據
  public void BindData()
  {
   serviceA=new SiteA.Service1();
   DataSet ds=new DataSet();
   XmlNode xmlNode1;
   XmlDataDocument xd=new XmlDataDocument();
   StringBuilder xmlString1;
   xmlNode1=serviceA.GetSiteAData(strSearch);
   if(xmlNode1==null) //--存儲過程執行失敗
    return;

   xmlString1=new StringBuilder(xmlNode1.OuterXml);
   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轉化成dataset的解決方案,雖然這不是必須的,但畢竟在asp.net裏,dataset佔的作用之重,誰都知道的.其他的請朋友們先看(呵呵,箇中高手就免了),在下篇文章中將會有對它的一些解釋與及多服務分佈調用的解決方案,寫了三篇了,發現似乎還是有些朋友看的,那我就獻醜繼續寫下去好了,大家有什麼意見也希望提出,在下的理解存在偏駁也再所難免,希望諒解:)

      好了,時候不早了,休息去了,下次有時間繼續:)

 

上一篇文檔: 下一篇文檔:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章