如何创建和使用Web Service代理类

** 如何创建和使用 ** ** 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 、至此,程序完成。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus