麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > XML > 正文

Xml WebService完全實例解析(二)

2024-09-05 20:55:47
字體:
來源:轉載
供稿:網友
上篇文章介紹了些webservice的基本特性和我們例子的結構,這篇文章我們將開始具體的代碼編寫工作.

      這個專題主要講述的是webservice,因此這里我們的代碼以webservice相關為主,而其他工程,例如:servicegathersite,websitea等,只將簡略介紹.

      在vs2003中,開發一個webservice并不是件困難的事,首先,我們新建一個webservice項目(文件->新建->項目->c#->web服務應用程序)

      建完這個工程,我們將看到一個叫service1.asmx的文件,這就是webservice的標準文件,它也有ui的概念,不過我們一般不關注,因此,我們查看其cs代碼文件.如果你什么都還沒做的話,將看見一個被注釋掉的helloworld的webmethod,把注釋去掉,在運行,你就可以得到最簡單的webservice運行實例了.點擊"helloworld"將執行其方法.顯然,這個函數對我們的意義只在于宏觀的了解了下web服務的寫法.

      下面,我們將開始具體介紹webservice的寫法.在代碼文件里,如果我們寫了一個函數后,希望此函數成為外部可調用的接口函數,我們必須在函數上面添上一行代碼[webmethod(description="函數的描述信息")],如果你的函數沒有這個申明,它將不能被用戶引用.如:

[webmethod(description="最簡單的方法")]
  public string helloworld()
  {
   return "hello world";
  }

      這個函數就是外部可調用的接口函數,對用戶來說相當于一個api.如果某用戶在引用了這個服務后,他調用helloworld()方法,他就將獲得"helloworld"這個返回值.

       看到這里,我們是不是發現,其實webservice并不是那么的神秘,它也不過只是個接口,對我們而言,側重點依然是接口函數的編寫.下面,我將給出我們的例子所需要的接口函數.

  [webmethod(description="查詢以獲取需要的課件信息")]
  public xmldatadocument getsiteadata(string assignname)
  {
   xmldatadocument xd=new xmldatadocument(); //
   dataset ds=new dataset();
   cstoreproc cp=new cstoreproc("searchassign");
   cp.addparin("@keywords",sqldbtype.varchar,30,assignname);
   cp.addparout("@res",sqldbtype.int);
   if(cp.selectproc()) //如果執行成功,存儲過程
   {
    cp.mydata.enforceconstraints=false; //不進行格式嚴格檢查
    if((int)cp.getreturnvalue("@res")==-1)
    {
     string xml="<newdataset></newdataset>";
     xd.loadxml(xml);
     return xd;
    }
    xd=new xmldatadocument(cp.mydata);
    xmlnode root1=xd.documentelement;
    xmlnodelist roots=root1.selectnodes("list");  
    foreach(xmlnode roota in  roots)  //為所有元素加上站點名稱標記
   {
     xmlelement link=xd.createelement("sitename");
     link.innertext=configurationsettings.appsettings["sitename"].tostring();
     roota.appendchild(link);

    }
    return xd;
   }
   else return null;
  }
 這是獲取資源站點信息的一個接口函數.里面大部分的代碼,我想對于有一定asp.net基礎的朋友來說,都應該是一看就明白,這里只說明下cstoreproc,這是我封裝的一個存儲過程類,主要功能是執行各種類型的存儲過程.

         細心的朋友可能會發現這個函數的返回類型似乎比較特殊,是個xml的文檔.我們在前面已經說過,webservice只能傳輸序列化數據,xml顯然滿足條件,但比如hash表之類的非序列化數據,是不能傳輸的,xml使用最為廣泛,而且考慮到跨平臺應用,所以這里我們只以xml數據的傳輸來示例.

         在下篇文章,我們將深入解析webservice的精髓---xml 數據傳輸.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: av成人在线电影 | 99爱视频在线观看 | 国产成人高清在线 | 在线2区 | 成人一级免费 | 欧美国产日韩在线观看成人 | 草逼一区 | 精品一区二区久久久 | 调教小男生抽打尿孔嗯啊视频 | www成人在线观看 | 国产区二区 | 九草av| 国产亚洲精彩视频 | 成人精品久久久 | 综合网天天色 | 亚洲精品a级 | 日韩中文字幕一区二区三区 | 国产成人精品区一区二区不卡 | 精品一区二区三区在线观看国产 | 精品久久一区二区 | 成人黄色短视频在线观看 | 亚洲午夜一区二区三区 | av影院在线 | 国产一区二区三区手机在线 | 国产成人自拍视频在线观看 | 曰批全过程120分钟免费69 | 亚洲成人福利在线观看 | 亚洲成人午夜精品 | 国产精品午夜小视频观看 | 久草在线最新免费 | 中文字幕精品亚洲 | 精品一区二区三区在线观看视频 | 嗯~啊~用力~高h | 全黄性性激高免费视频 | 成人不卡 | 黄网站色成年大片免费高 | 免费在线观看亚洲 | 青青草成人影视 | 日韩毛片免费观看 | 91短视频在线播放 | 久久久久久久免费视频 |