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

來源:互聯網
上載者: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就可以了.

  到這裡,我們的例子基本也就介紹完了,由於個人的原因,最後一篇可能寫的比較倉促,非常慚愧.

  不知道寫這麼多,對學習中的朋友會不會有協助,裡面的東西,很多也算是個人理解,如果出錯,還請各位海涵:)

  以後可能上網的時間會很少,要考研了,如果你有什麼需要協助的或是疑

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.