调用HelloWorld()方法,他就将获得"HelloWorld"这个返回值

  这个函数就是外部可调用的接口函数,对用户来说相当于一个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="";   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;   }更多内容http://rajojia.blog.51cto.com

  这是获取资源站点信息的一个接口函数。里面大部分的代码,我想对于有一定asp.net基础的朋友来说,都应该是一看就明白,这里只说明下CStoreProc,这是我封装的一个存储过程类,主要功能是执行各种类型的存储过程。

  细心的朋友可能会发现这个函数的返回类型似乎比较特殊,是个xml的文档。我们在前面已经说过,webservice只能传输序列化数据,xml显然满足 条件,但比如hash表之类的非序列化数据,是不能传输的,xml使用最为广泛,而且考虑到跨平台应用,所以这里我们只以xml数据的传输来示例。

      [NextPage]

  接上篇文章,我们先简单解释下GetSiteAData(string AssignName)函数。

  函数功能很简单,只是要返回查询结果,其数据格式是XmlDataDocument.当查询失败时(无匹配查询结果),我们构造一个xml,返回一个空记 录。否则,我们把查询后的dataset生成一个XmlDataDocument,接下来,由于该项目的需要,我加入了一个循环,添加dataset里所 没有的节点,站点名称。在这之后,算是完成了一个符合我们期望格式的xml数据文档,我们把它返回。健康知识了解平台重庆结石病医院

posted @ 2012-05-25 14:16  网络汇集  阅读(305)  评论(0)    收藏  举报