如何创建和使用Web Service代理类
2024-07-21 02:21:17
供稿:网友
如何创建和使用web service代理类
web服务代理是支持.net的编程语言文件,由.net框架提供的wsdl工具自动生成。代理类不包含任何应用程序逻辑。相反,他包含关于如何传递参数和检索结果的传输逻辑,还包含web服务中的方法及原型列表。代理类可以从任何wsdl文件创建。
可以像访问com对象一样访问web服务。要访问web服务,需要从本地计算机上的web服务的wsdl文档创建代理类。.net提供了名为wsdl.exe的工具以自动生成代理类文件。下面详细说明其创建和使用过程:
1、 新建一个asp应用程序(#c)工程,工程名为teachshow,在teachshow工程中创建一个文件夹charpter8,在该文件夹下创建一个新的web服务,取名为:computer.asmx
2、 切换到代码视图,编写下面的代码:
[webmethod(description="用于相加运算", enablesession=false)]
public int add(int a,int b)
{
return a+b;
}
[webmethod(description="用于相减运算", enablesession=false)]
public int sub(int a,int b)
{
return a+b;
}
[webmethod(description="用于相乘运算", enablesession=false)]
public int multi(int a,int b)
{
return a*b;
}
[webmethod(description="用于相除运算", enablesession=false)]
public double devide(int a,int b)
{
return convert.todouble(a)/convert.todouble(b);
3、按f5编译整个工程(这一步一定要做,如果不做第4步无法实现)
4、打开ms.net 2003的命令提示工具,输入:c:/>wsdl http://localhost/teachshow/charpter8/firstanduse/computer.asmx /n:computernamespace,其中,computernamespace是自定义的命名空间。提示如下:
microsoft (r) web 服务描述语言实用工具
[microsoft (r) .net framework,版本 1.1.4322.573]
copyright (c) microsoft corporation 1998-2002. all rights reserved.
正在写入文件“c:/computer.cs”。
5、注意,此时在c:盘(其实就是命令提示符的当前目录)下生成一个和computer.asmx相同文件名的c#源文件computer.cs。
6、编译computer.cs文件,在命令提示符下输入如下命令:c:/>csc /out:computerdll.dll /t:library /r:system.web.services.dll c:/computer.cs。其中,/out:computerdll.dll是要输出的dll文件,/t:library是输出文件类型,/r:system.web.services.dll是要引用的组件,c:/computer.cs是第4步生成的c#文件。
7、此时,将会在c:盘下生成一个叫computerdll.dll的文件,要使用这个文件,必须复制到teachshow文件夹下的bin目录下。默认情况下为:c:/inetpub/wwwroot/teachshow/bin。
8、新建一个名为testwsdl.aspx的web窗体文件,并添加一个引用,将刚才生成的computerdll.dll文件作为引用添加到工程中。
9、在testwsdl.aspx窗体的load事件中编写代码:
computernamespace.computer com=new computernamespace.computer();
this.response.write("和:"+com.add(45,65).tostring()+"
");
this.response.write("减:"+com.sub(78,900).tostring()+"
");
this.response.write("乘:"+com.multi(43,55).tostring()+"
");
this.response.write("除:"+com.devide(1000,33).tostring());
显示结果:
和:110
减:978
乘:2365
除:30.3030303030303
10、至此,程序完成。