Porady: asynchroniczne wywoływanie usługi sieci Web (Visual Basic)
W tym przykładzie program obsługi jest dołączenie do usługi sieci Web asynchronicznego programu obsługi zdarzeń, tak, aby ją pobrać wynik asynchroniczne wywołanie metody.W tym przykładzie używana usługa sieci DemoTemperatureService Web pod adresem http://www.xmethods.NET.
Kiedy usługa sieci Web odwoływać się w projekcie w Visual Studio rozwoju środowiska IDE (Integrated), jest ona dodawana do My.WebServices obiektu i IDE generuje klasę proxy klienta do uzyskiwania dostępu do określonej usługi sieci Web
Klasy proxy służy do wywoływania metody usługi sieci Web synchronicznie, gdzie aplikacja oczekuje dla tej funkcji zakończyć.Ponadto serwer proxy tworzy dodatkowych członków pomagające w wywołaniu metody asynchronicznie.Dla każdej funkcji usługi sieci Web NameOfWebServiceFunction, tworzy proxy NameOfWebServiceFunctionAsync procedurę, NameOfWebServiceFunctionCompleted zdarzenia, a NameOfWebServiceFunctionCompletedEventArgs klasy.W tym przykładzie przedstawiono sposób użycia asynchronicznego elementów członkowskich dostępu do getTemp funkcji usługi sieci DemoTemperatureService Web.
[!UWAGA]
Ten kod nie działa w aplikacji sieci Web, ponieważ program ASP.NET nie obsługuje My.WebServices obiektu.
Asynchronicznie wywołania usługi sieci Web
Odwołanie do usługi sieci DemoTemperatureService Web pod adresem http://www.xmethods.NET.Adres jest
http://www.xmethods.net/sd/2001/DemoTemperatureService.wsdl
Dodaj program obsługi zdarzeń dla getTempCompleted zdarzenia:
Private Sub getTempCompletedHandler(ByVal sender As Object, ByVal e As net.xmethods.www.getTempCompletedEventArgs) MsgBox("Temperature: " & e.Result) End Sub
[!UWAGA]
Nie można użyć Handles instrukcji do skojarzenia programu obsługi zdarzeń z My.WebServices obiektu zdarzenia.
Dodaj pole do śledzenia, jeśli program obsługi zdarzeń został dodany do getTempCompleted zdarzenia:
Private handlerAttached As Boolean = False
Dodaj metodę, aby dodać do obsługi zdarzeń getTempCompleted zdarzenia, jeśli to konieczne oraz wywołanie getTempAsynch metody:
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
Aby wywołać getTemp asynchronicznie sieci Web metody, należy wywołać CallGetTempAsync metody.Po zakończeniu działania metody sieci Web, jego wartość zwracana jest przekazywany do getTempCompletedHandler programu obsługi zdarzeń.
Zobacz też
Informacje
Koncepcje
Uzyskiwanie dostępu do usług sieci Web aplikacji (Visual Basic)