首页 > 开发 > 综合 > 正文

如何创建和使用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、至此,程序完成。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表