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.wsdlFügen Sie einen Ereignishandler für das
getTempCompletedEreignis hinzu:Private Sub getTempCompletedHandler(ByVal sender As Object, ByVal e As net.xmethods.www.getTempCompletedEventArgs) MsgBox("Temperature: " & e.Result) End SubHinweis
Sie können die
HandlesAnweisung nicht verwenden, um einen Ereignishandler den Ereignissen desMy.WebServicesObjekts zuzuordnen.Fügen Sie ein Feld hinzu, um nachzuverfolgen, ob der Ereignishandler dem
getTempCompletedEreignis hinzugefügt wurde:Private handlerAttached As Boolean = FalseFü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 SubUm die
getTemp-Webmethode asynchron aufzurufen, verwenden Sie die MethodeCallGetTempAsync. Nach Abschluss der Webmethode wird der Rückgabewert an dengetTempCompletedHandlerEreignishandler übergeben.