当前位置: 首页 > 图文教程 > 网络编程 > ASP > 怎样创建.NET Web Service(2)

ASP
构建你的网站新闻自动发布系统之三
构建你的网站新闻自动发布系统之四
如何用ASP编写网站统计系统一
如何用ASP编写网站统计系统二
如何用ASP编写网站统计系统三
如何用ASP编写网站统计系统四
ASP Error 0115的一些解决办法
ASP 3.0 新特色先睹为快(一)
ASP 3.0 新特色先睹为快(二)
ASP主件中的安全问题
一个汉字转成拼音的代码
使用w3Sockets组件实现域名查询功能
ASP中实现文件上传方法的研究
构建免受FSO组件威胁虚拟主机
用XMLHTTP做一个自己特色的Google
用asp实现的代码批量修改程序
无组件的数据库的备份与还原
用ASPJPEG组件制作图片的缩略图和加水印
解密ASP源代码
XmlHttp异步获取网站数据的例子

ASP 中的 怎样创建.NET Web Service(2)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 226 ::
收藏到网摘: n/a

      
    创建Web Service
  
    我将用c#创建一个Web Service 叫SecurityWebService。一个Web Service文件的扩展名是:.asmx(就象asp.net的文件扩展名.aspx那样),文件的第一行是:
  
  <%@ WebService Language="C#" class="SecurityWebService" %>
  
    这个语句的含义是:告诉编译器运行Web Service模式,还有c#类名。我们还需要访问Web Service名字空间,这也是引用系统名字空间的一次好实践。
  
  using System;
  using System.Web.Services;
  
    SecurityWebService 应该继承了Web Service类的功能,因此我们有必要加入下面这行代码
  
  public class SecurityWebService : WebService
  
    现在我们使用面向对象的编程技巧创建一个类,c#的类与c++和java非常相似,用C#建一个类件象去公园散步那样简单,而且不需要任何技巧。
  
    C#的基本数据类型设计的非常聪明,因此,如果我们返回"int," "float," 或者 "string" ,那么将自动将他们转变成标准Xml输出。不幸的是,在大多数例子中我们需要将获得的数据集合看成一个单一的实体(single entity)。现在我们举一个例子。
  
    我们的 SecurityWebService 股票报价系统需要用户输入股票代码,并且还将返回完整的公司名和现行股票价格,所以对一只股票而言我们有三个信息块。
  
    1、公司代码(string)
  
    2、公司名(string)
  
    3、价格(double)
  
    当我们提交股票时,我们需要提取所有三种数据,有几种方法来完成这项工作,最好的方法是将他们绑定到一种可被枚举的数据类型内,我们在c#中可用"struct"来完成,c#中的"struct"和c++中的结构很相似。
  
  public struct SecurityInfo
  {
  public string Code;
  public string CompanyName;
  public double Price;
  }
  
    我们可以通过模块创建Web Service,代码如下:
  
  <%@ WebService Language="C#" class="SecurityWebService" %>
  
  using System;
  using System.Web.Services;
  
  public struct SecurityInfo
  {
  public string Code;
  public string CompanyName;
  public double Price;
  }
  
  public class SecurityWebService : WebService
  {
  private SecurityInfo Security;
  
  public SecurityWebService()
  {
  Security.Code = "";
  Security.CompanyName = "";
  Security.Price = 0;
  }
  
  private void AssignValues(string Code)
  {
  // This is where you use your business components.
  // Method calls on Business components are used to populate the data.
  // For demonstration purposes, I will add a string to the Code and
  // use a random number generator to create the price feed.
  
  Security.Code = Code;
  Security.CompanyName = Code + " Pty Ltd";
  Random RandomNumber = new System.Random();
  Security.Price = double.Parse(new System.Random(RandomNumber.Next(1,10)).NextDouble().Format("##.##",null));
  }
  
  
  [WebMethod(Description="This method call will get the company name and the price for a given security code.",EnableSession=false)]
  public SecurityInfo GetSecurityInfo(string Code)
  {
  AssignValues(Code);
  SecurityInfo SecurityDetails = new SecurityInfo();
  SecurityDetails.Code = Security.Code;
  SecurityDetails.CompanyName = Security.CompanyName;
  SecurityDetails.Price = Security.Price;
  return SecurityDetails;
  }