Sdílet prostřednictvím


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

  1. Odkaz webovou službu DemoTemperatureService na http://www.xmethods.čisté.Adresa je

    http://www.xmethods.net/sd/2001/DemoTemperatureService.wsdl
    
  2. 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.

  3. 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
    
  4. 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.

Viz také

Referenční dokumentace

My.WebServices – objekt

Koncepty

Přístup k aplikačním webovým službám (Visual Basic)