网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > DotNet > XML&Web > Xml WebService完全实例解析(2)  

Xml WebService完全实例解析(2)

2005-12-08  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  上篇文章介绍了些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="最简单的方法")]

网管下载dl.bitscn.com


  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);

网管bitscn_com


  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 数据传输:)

TAGs解析   实例   完全   函数   webservice   接口    
 上一篇:Xml WebService完全实例解析(3)   下一篇:Xml WebService完全实例解析(1)
相关文章列表
Xml WebService完全实例解析(2) 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.学好基本功之熟练调用 Web Service
2.XML Web Service完全实例解析
3.Acegi安全系统的配置
4.Xml WebService完全实例解析(2)
5.Xml WebService完全实例解析(1)
6.Javascript调用Webservice的汇集
7.异步WebService调用
8.用C#与XML创建动态分层菜单
9.关于webservice的异步调用实例
10.Xml WebService完全实例解析(3)
最新推荐文章:
1.关于Debug和Release之本质区别的讨论
2.客户端访问Web Service方法的一个细节
3.如何让WebServer返回指的定XML内容
4.如何用XML保存配置设定
5.使用 XML 通过 Java 类定义 Web服务
6.XML文件读取数据绑定到DropDownList
7.WebService中使用自定义类的解决方法
8.Web Service 中的身份验证策略
9.如何使用XmlSerializer类控制串行化
10.XML Web services 基础结构
网管论坛交流:
·不疯魔不成活
·令你大开眼界的真正标准化机房,已整理重
·为赈灾,女孩舍身拍“裸照”
·Windows Server 2003服务器群集创建和配
·exchange2k3全套官方资料
·双儿一周岁了。。。特殊的礼物来啦。。
·存储备份技术版块守则
·无盘技术交流区守则
·DOS命令基础大全之命令详解<作者吐血
·Windows XP 操作系统默认设置需要注意的