现在我们将举一个例子,来说明上面我们介绍的数据类型:
这个例子利用WebServiceUtil.exe建立的SOAP代理来使用上面列出的数据类型。注意:因为在.asmx文件中定义了多于一个的公用类,所以,我们必须要指定哪一个作为WebService类,这可以通过设置WebService标识的Class属性来实现,代码如下:
<%@ WebService Language="C#" Class="DataTypes" %>
源文件webservice/datatype.asmx的内容如下:
<%@ WebService Language="VB" Class="DataTypes" %>
Imports System
Imports System.Web.Services
Public Enum Mode
EOn = 1
EOff = 2
End Enum
Public Class Order
Public OrderID As Integer
Public Price As Double
End Class
Public Class DataTypes
‘SayHello方法显示从service中返回的一个字符串信息。
Public Function <WebMethod()> SayHello() As String
Return "Hello World!"
End Function
‘SayHelloName方法返回一个字符串,并接受一个字符串参数。
Public Function <WebMethod()> SayHelloName(Name As String) As String
Return "Hello" & Name
End Function
‘GetIntArray方法显示了如何返回一个整数数组。
Public Function <WebMethod()> GetIntArray() As Integer()
Dim I As Integer
Dim A(5) As Integer
For I = 0 to 4
A(I) = I*10
Next
Return A
End Function
‘GetMode方法返回一个枚举数值。
Public Function <WebMethod()> GetMode() As Mode
Return Mode.EOff
End Function
‘GetOrder方法返回一个类。
Public Function <WebMethod()> GetOrder() As Order
Dim MyOrder As New Order
MyOrder.Price=34.5
MyOrder.OrderID = 323232
Return MyOrder
End Function
‘GetOrders方法返回定单对象数组。
Public Function <WebMethod()> GetOrders() As Order()
Dim MyOrder(2) As Order
MyOrder(0) = New Order()
MyOrder(0).Price=34.5
MyOrder(0).OrderID = 323232
MyOrder(1) = New Order()
MyOrder(1).Price=99.4
MyOrder(1).OrderID = 645645
Return MyOrder
End Function
End Class