欢迎您来到中国万网客户服务中心!
客服导航
如果您在使用我们的产品中遇到问题,建议您首先在“常见问题”中查询解决方法;
如果没有找到该问题的解决方法,您可以在“问题搜索”中进行搜索;
如果搜索后没有找到满意答案,您可以“在线提问”,我们会在1个工作日内给您答复。
您现在的位置: 中国万网客服中心 >> 常见问题 >> 软件常见问题 >> ASP.NET程序模板 >> 文章正文

XML Web 服务类型封送处理

作者:客服中心    文章来源:本站原创    点击数:    更新时间:2006-2-24

本节阐释可以给 Web 服务方法传递和从 Web 服务方法返回各种数据类型。由于 XML Web 服务实现建立在 XML 序列化结构之上,因此它支持相当多的数据类型。下表列出了在使用 SOAP 协议(例如,使用由 Web 服务描述语言工具 WSDL.exe 生成的代理)时 Web 服务方法支持的数据类型。

说明
基元类型 标准基元类型。 受支持的基元类型的完整列表是 String、Char、Byte、Boolean、Int16、Int32、Int64、UInt16、UInt32、UInt64、Single、Double、Guid、Decimal、DateTime (与 XML 的 timeInstant 一样)、DateTime(与 XML 的 date 一样)、DateTime(与 XML 的 time 一样)和 XmlQualifiedName(与 XML 的 QName 一样)。
枚举类型 枚举类型,例如“public enum color { red=1, blue=2 }”
基元数组,枚举 上述基元类型的数组,如 string[] 和 int[]
类和结构 具有公共字段或属性的类和结构类型。 公共属性和字段已序列化。
类数组(结构) 上述类型的数组。
数据集 ADO.NET }数据集类型(有关示例,请参阅下一节)。 数据集也可以字段的形式出现在结构或类中。

注意:Microsoft Visual Studio .NET 和 XSD.EXE SDK 实用工具支持数据集具有强类型。这些工具生成一个类,该类从数据集继承以产生 DataSet1,并添加若干特定于具体某个 XML 架构的方法/属性/其他对象。如果您传递数据集,XML Web 服务始终将架构与数据(这样它就知道您正在传递的表和列)及其类型(如 int、string 类型)一起传输。如果您传递数据集的一个子类(如 DataSet1),则 XML Web 服务假定您正在构造函数中添加表/列,并假定这些表 /列表示您的架构。

数据集数组 上述类型的数组。
XmlNode XmlNode 是 XML 段在内存中的表示形式(类似轻量 XML 文档对象模型)。例如 “<comment>This is<b>pretty</b> neat</comment>” 可以存储在 XmlNode 中。可以将 XmlNodes 作为参数传递,这些参数将添加到以 SOAP 兼容方式传递到 XML Web 服务的 XML 的其余部分(其他参数)。返回值同样如此。这使您可以传递或返回结构随调用改变的 XML,或者可能不知道正在传递的所有类型的 XML。XmlNode 也可以字段的形式出现在结构或类中。
XmlNode 的数组 上述类型的数组。

返回值:

不论是使用 SOAP 还是 HTTP GET/POST 来调用 XML Web 服务,返回值都支持上述所有类型。

参数:

当使用 SOAP 协议时,按值参数和按引用参数 (in/out) 都受支持。按引用参数可以沿两个方向发送值:向上发送到服务器和向下发送回客户端。当使用 HTTP GET/POST 将输入参数传递给 XML Web 服务时,只支持一组有限的数据类型,并且它们必须是按值参数。HTTP GET/POST 参数支持的类型在下面列出:

类型 说明
基元类型(有限) 大多数标准基元类型。受支持的基元类型的完整列表是 Int32、String、Int16、Int64、Boolean、Single、Double、Decimal、DateTime、UInt16、UInt32、UInt64 和 Currency。从客户端的角度看,所有这些类型都转换为 string。
枚举类型 枚举类型,例如“public enum color { red=1, blue=2 }”。从客户端的角度看,枚举变成每个值都有静态常数字符串的类。
基元数组,枚举 上述基元类型的数组,如 string[] 和 int[]

下面的示例使用从 WSDL.exe 生成的 SOAP 代理,说明上面所列类型的用法。注意,由于 .asmx 文件中定义的公共类不止一个,因此必须使用 WebService 指令的“Class”属性指定将那个视为 WebService 类:

<%@ WebService Language="C#" Class="DataTypes" %>

 
C# DataTypes.asmx

[查看源代码]
 

  • SayHello 方法显示从服务返回字符串。
  • SayHelloName 方法返回字符串,并将字符串作为参数。
  • GetIntArray 方法显示如何返回整数数组。
  • GetMode 方法返回枚举值。
  • GetOrder 方法返回类(在此处的结构几乎一样)。
  • GetOrders 方法返回 Order 对象的数组。

使用 WSDL.exe 命令行代理生成工具,这些数据类型的封送处理对使用客户端应用程序是透明的。下面是上述 XML Web 服务的一个示例客户端应用程序:

 
C# DataTypesClient.aspx

[查看源代码]


返回上一页
中国万网旗下网站:中国万网 买麦网
Copyright © 2007 中国万网 版权所有
推荐使用1024×768分辨率浏览,并关闭窗口弹出阻止程序