Postupy: Asynchronní volání webové služby (Visual Basic)
V tomto příkladu připojí obslužnou rutinu asynchronní obslužnou rutinu události webové služby, tak, aby jej můžete načíst výsledek asynchronní volání metody.V tomto příkladu používá webové služby DemoTemperatureService na adrese http://www.xmethods.čisté.
Při odkazu webové služby ve vašem projektu v Visual Studio integrované vývojové prostředí (IDE), je přidán do My.WebServices objektu a rozhraní IDE vygeneruje klientskou proxy třídu pro přístup k zadané webové služby
Proxy třída umožňuje volání metod webové služby synchronně, kde aplikace čeká na dokončení funkce.Kromě toho proxy vytvoří další členy k usnadnění volání metod asynchronně.Pro každou funkci webové služby NameOfWebServiceFunction, vytvoří proxy NameOfWebServiceFunctionAsync podprogramu, NameOfWebServiceFunctionCompleted událostí a NameOfWebServiceFunctionCompletedEventArgs třídy.Tento příklad ukazuje, jak používat asynchronních členů pro přístup getTemp funkce webové služby DemoTemperatureService.
[!POZNÁMKA]
Tento kód není funkční ve webových aplikací, protože technologie ASP.NET nepodporuje My.WebServices objektu.
Chcete-li asynchronně volání webové služby
Odkaz webovou službu DemoTemperatureService na http://www.xmethods.čisté.Adresa je
http://www.xmethods.net/sd/2001/DemoTemperatureService.wsdl
Přidat obslužnou rutinu pro getTempCompleted události:
Private Sub getTempCompletedHandler(ByVal sender As Object, ByVal e As net.xmethods.www.getTempCompletedEventArgs) MsgBox("Temperature: " & e.Result) End Sub
[!POZNÁMKA]
Nelze použít Handles prohlášení, abyste přidružení obslužné rutiny události s My.WebServices objektem události.
Přidat pole, které chcete sledovat, pokud obslužná rutina události byl přidán do getTempCompleted události:
Private handlerAttached As Boolean = False
Přidat způsob, jak přidat obslužnou rutinu události getTempCompleted událost, pokud je to nutné a k volání getTempAsynch metoda:
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
Volání getTemp webovou metodu asynchronně, volejte CallGetTempAsync metody.Po dokončení metody webové služby, je její vrácená hodnota předána getTempCompletedHandler obslužnou rutinu události.