Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Beispiel wird ein Handler an das asynchrone Handlerereignis eines Webdiensts angefügt, damit er das Ergebnis eines asynchronen Methodenaufrufs abrufen kann. In diesem Beispiel wurde der Webdienst DemoTemperatureService unter http://www.xmethods.net
verwendet.
Wenn Sie auf einen Webdienst in Ihrem Projekt in der Integrierten Entwicklungsumgebung (IDE) von Visual Studio verweisen, wird er dem My.WebServices
Objekt hinzugefügt, und die IDE generiert eine Clientproxyklasse für den Zugriff auf einen angegebenen Webdienst.
Mit der Proxyklasse können Sie die Webdienstmethoden synchron aufrufen, wobei die Anwendung auf den Abschluss der Funktion wartet. Darüber hinaus erstellt der Proxy zusätzliche Mitglieder, um die Methode im asynchronen Modus aufzurufen. Für jede Webdienstfunktion erstellt der Proxy eine NameOfWebServiceFunction-Unterroutine, ein Async
und eine Completed
. CompletedEventArgs
Dieses Beispiel demonstriert, wie Sie die asynchronen Member für den Zugriff auf die getTemp
-Funktion des Webdiensts DemoTemperatureService verwenden.
Hinweis
Dieser Code funktioniert in Webanwendungen nicht, da ASP.NET das My.WebServices
Objekt nicht unterstützt.
asynchrones Aufrufen eines Webdiensts
Verweisen Sie auf den DemoTemperatureService-Webdienst unter
http://www.xmethods.net
. Die Adresse lautethttp://www.xmethods.net/sd/2001/DemoTemperatureService.wsdl
Fügen Sie einen Ereignishandler für das
getTempCompleted
Ereignis hinzu:Private Sub getTempCompletedHandler(ByVal sender As Object, ByVal e As net.xmethods.www.getTempCompletedEventArgs) MsgBox("Temperature: " & e.Result) End Sub
Hinweis
Sie können die
Handles
Anweisung nicht verwenden, um einen Ereignishandler den Ereignissen desMy.WebServices
Objekts zuzuordnen.Fügen Sie ein Feld hinzu, um nachzuverfolgen, ob der Ereignishandler dem
getTempCompleted
Ereignis hinzugefügt wurde:Private handlerAttached As Boolean = False
Fügen Sie eine Methode hinzu, um den Ereignishandler zum
getTempCompleted
-Ereignis hinzufügen – sofern nötig – und zum Aufruf dergetTempAsync
-Methode:Sub CallGetTempAsync(ByVal zipCode As Integer) If Not handlerAttached Then AddHandler My.WebServices. TemperatureService.getTempCompleted, AddressOf Me.TS_getTempCompleted handlerAttached = True End If My.WebServices.TemperatureService.getTempAsync(zipCode) End Sub
Um die
getTemp
-Webmethode asynchron aufzurufen, verwenden Sie die MethodeCallGetTempAsync
. Nach Abschluss der Webmethode wird der Rückgabewert an dengetTempCompletedHandler
Ereignishandler übergeben.