Иллюстрированный самоучитель по Visual Basic .NET

Использование web-службы на стороне клиента

При запуске с ключом /language: VB утилита создает файл с кодом вспомогательного класса Servicel.vb, по умолчанию находящийся в одном каталоге с wsdl.exe (выходной каталог задается ключом out).

Основной код сгенерированного класса выглядит так:

Option Strict Off
Option Explicit On
Imports System
Imports System.Diagnostics
Imports System.Web.Services
Imports System.Web.Servi ces.Protocols
Imports System.Xml.Serialization
'This source code was auto-generated by wsdl,Version=l.0.2914.16.
<System.Web.Servi ces.WebServi ceBi ndi ngAttri bute(Name: = "ServicelSoap". [Namespace]
:= "http://tempuri,org/")> _
Public Class Servicel
Inherits System.Web.Services.Protocols.SoapHttpClientProtocol
<System.Diagnostics.DebuggerStepThroughAttri bute()> _
Public Sub New() MyBase.New Me.Url ="http://localhost/WebServicel/Servicel.asmx"
End Sub
<System.Diagnostics.DebuggerStepThroughAttri bute().
System.Web.Services.Protocols.
SoapDocumentMethodAttri bute _
("http://tempuri.org/GetWeather".
Use: = System.Web.Services.Description.
SoapBindingUse.Literal.
ParameterStyle: = System.Web.Services.
Protocols.SoapParameterStyle.Wrapped)> _
Public Function GetWeather(ByVal city
As String)As String
Dimresults() As Object=Me.Invoke
("GetWeather". New Object 0 {city})
Return CType(results(0). String)
End Function
<System.Diagnostics.
DebuggerStepThroughAttribute()> _
Public Function BeginGetWeather(ByVal city As String._
ByVal callback As System.AsyncCallback.
ByVal asyncState As Object) As System.IAsyncResult
Return
Me.Beginlnvoke("GetWeather", New Object()
{city}.call back.asyncState)
End Function
<System.Diagnostics.DebuggerStepThroughAttributet)> _
Public Function EndGetWeather(ByVal asyncResult
As System.IAsyncResult) As String
Dim results()As Object = Me.EndInvoke(asyncResult)
Return
CType(results(0), String)
End Function
End Class

Затем в проект включается код класса (или ссылка на него) и ссылки на сборки System.Web, System.XML и System.Web.Services. Остается лишь создать экземпляр вспомогательного класса и вызвать функцию GetWeather!

Теперь, когда вы знаете, как получить результаты обращения к web-службе, нетрудно представить себе следующие возможные шаги:

  • объединение результатов нескольких обращений к web-службам в одном файле;
  • применение к результату запроса преобразований XSL и построение новых страниц с HTML-кодом при помощи web-служб, работающих на разных сайтах.

Перед нами одно из проявлений той концепции, которую сейчас активно внедряет Microsoft, – Web как глобальная сеть, через которую пользователь легко получает доступ к любым необходимым данным.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.