如何创建和使用Web Service代理类
来源:互联网 发布:安卓源码怎么用 编辑:程序博客网 时间:2024/06/05 04:06
Web 服务描述语言工具 (Wsdl.exe) 生成代理代码对 XMLWeb 服务。 代理类中使用生成类型基于 WSDL 文档描述 XMLWeb 服务的内容。 但是, 生成类型可能不希望也您期望。
Wsdl.exe 确定最佳生成要用于服务说明中所指定对象类型。 在某些情况下, 该工具使用最常见 denominator - 方法对于到类型转换对象。 例如, WebMethod 中一个 ArrayList 参数在 WSDL 描述作为 XML 架构 (XSD) 序列。 Wsdl.exe 查找该数组描述服务说明, Wsdl.exe 中然后生成代理类时, 使用对象数组。 您可能愿意使用一个 ArrayList , 是已使用 WebMethod 中原始类型。 如果您不想使用生成类型, 您生成类型更改到更理想类型。 以获得适当的对象类型, 可打开包含生成代理类文件、 手动更改生成方法参数, 然后返回类型到合适对象类型。
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是自定义的命名空间。提示如下:
4.1 VS2010下这样写
D:\VS2010\VC>wsdl.exe /l:cs /n:Computer /out:\Computer.cs http://localhost:8111/
Charpter8/Computer.asmx?wsdl
wsdl.exe是vs自带的命令行
/l:cs 是 输出language,cs是csharp(c#)。选项可以为:“CS”、“VB”、“JS”、“VJS”、 “CPP”
/n:wsdllib (n = namespace)是生成代理类的命名空间。
/out 是输出路径,生成的代理类。
最后的路径为webservice的引用路径或者其描述文件。
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、至此,程序完成。
- 如何创建和使用Web Service代理类
- 如何创建和使用Web Service代理类
- 如何创建和发布Web Service
- 如何创建和发布Web Service
- 如何创建和发布Web Service
- 如何创建和发布.asmx Web Service
- 如何创建和发布Web Service
- 如何使用 Visual Studio .NET 和 Office xp 创建和部署 XML Web service
- 如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API
- 如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API
- 如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API
- 如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API (分享)
- 如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API
- 如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API
- VS2005 如何创建和发布.asmx Web Service
- Web Service 代理类组成
- 使用CXF创建WEB SERVICE
- 使用Apache CXF和Spring集成创建Web Service
- 九度题目1003:A+B && 2010年浙江大学计算机及软件工程研究生机试真题
- 关于mongodb按照字段模糊查询方法
- 20款优秀的移动产品原型和线框图设计工具
- java Map及Map.Entry详解
- ibatis框架环境搭建
- 如何创建和使用Web Service代理类
- 组件类源文件的直接使用
- EFFECTIVE STL 转载
- 《黑马程序员》 jdk 1.5的新特性:自动装箱与拆箱练习及享元设计模式
- JavaScript的简介(JavaScript数据类型)---JavaScript高级程序设计读书笔记(一)
- 在圆内随机一个坐标点/已知圆心和点,求角度
- 为什么北漂
- php call_user_func
- iOS 应用程序内部国际化,不跟随系统语言