All articles(网络文学目录) All Pictures(图片目录) All Softwares(软件目录)

 
C#教程:创建Web服务

Writer: qq Article type: Programming skills(编程技巧) Time: 2014/7/11 9:23:27 Browse times: 283 Comment times: 0

C#教程:创建Web服务


Head photo

Go homepage
Upload pictures
Write articles

C#教程:创建Web服务

创建Web服务
创建Web服务的步骤如下所示。
(1)在ASP.NET 2005中创建Web服务和创建类很相似,其过程包括声明一个Web服务和定义一个Web服务接口方法。新建一个名为MrWebService的项目,在Visual Studio 2005开发环境中,选择“文件”/“新建”/“网站”选项,弹出“新建网站”对话框,在该对话框中选择“ASP.NET Web服务”选项,并命名为“mrWebService”,如图1所示。

图1 创建ASP.NET Web服务
(2)单击【确定】按钮,项目创建成功,并在“解决方案资源管理器”窗口中显示一个以.cs为扩展名的文件,如图2所示和一个以.asmx为扩展名的Web服务文件,如图3所示。在Web服务文件中包含一条“@Webservice”指令。Web服务至少由一个类组成,该类可以写在同一个.asmx文件中,也可以采用“Code Behind”(代码分离)方法,并通过“@WebService”指令引入。
(3)在“解决方案资源管理器”窗口中,双击“App_Code”文件夹下的Service.cs文件,进入其代码视图。Service.cs文件代码如下:

图2 以.cs结尾文件

图3 以.asmx结尾文件
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
public Service () {
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
}
(4)在上述代码中,系统自带一个HelloWorld方法,此方法返回一个字符串。下面新建两个自定义方法:Add方法和Ascii方法,其中Add方法用来实现两数相加的功能,而Ascii方法用来实现返回字符的ASCII值功能。
Add方法和Ascii方法关键代码如下:
[WebMethod(Description="第一个测试函数,返回两个数的和")]
public int Add(int num1, int num2)
{
return num1 + num2;
}
[WebMethod(Description="第二个测试函数,返回字符ASCII")]
public char Ascii(string strAscII)
{
return Char.Parse(strAscII);
}
(5)设置WebMethod属性。
如果某一个成员函数能被外部调用,则必须满足两个条件:第一,该成员函数为public类型;第二,该成员函数必须具有“[Webmethod]”关键字修饰,因为只有具备了“[WebMethod]”的类,才可以通过SOAP被远程访问。如果要使某方法可以被Web服务调用,在其前面加上“[WebMethod]”属性即可。例如,下面代码中的HelloWorld方法、Add方法和Ascii方法都可以使用Web服务进行调用,而sub方法不能被调用。代码如下:
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
[WebMethod(Description="第一个测试函数,返回两个数的和")]
public int Add(int num1, int num2)
{
return num1 + num2;
}
[WebMethod(Description="第二个测试函数,返回字符ASCII")]
public char Ascii(string strAscII)
{
return Char.Parse(strAscII);
}
public int sub(int num1,int num2)
{
return num1 * num2;
}
上面所建的Web服务的运行结果如图4所示。如图4所示,由于sub方法前面没有“[WebMethod]”属性,所以Web服务中没有,它也不能被远程访问。
WebMethod属性中可以指定的节及说明如表1所示。

图4 WebMethod属性效果

表1 WebMethod属性节





There are 0 records,
Comment:
Must be registered users to comment(必须是注册用户才能发表评论)

Disclaimer Privacy Policy About us Site Map
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.