调用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数据文档,我们把它返回。健康知识了解平台重庆结石病医院

浙公网安备 33010602011771号