Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento příklad připojuje obsluhu k asynchronní události webové služby, aby mohl načíst výsledek asynchronního volání metody. Tento příklad použil webovou službu DemoTemperatureService na adrese http://www.xmethods.net.
Když ve svém projektu v integrovaném vývojovém prostředí (IDE) sady Visual Studio odkazujete na webovou službu, přidá se do objektu My.WebServices a integrované vývojové prostředí (IDE) vygeneruje třídu proxy klienta pro přístup k zadané webové službě.
Třída proxy umožňuje volat metody webové služby synchronně, kde vaše aplikace čeká na dokončení funkce. Kromě toho proxy vytváří další prvky, které pomáhají volat metodu asynchronně. Pro každou funkci webové služby NameOfWebServiceFunction vytvoří proxy subroutine NameOfWebServiceFunctionAsync , NameOfWebServiceFunctionCompleted událost a NameOfWebServiceFunctionCompletedEventArgs třídy. Tento příklad ukazuje, jak použít asynchronní členy pro přístup k funkci webové služby DemoTemperatureService.
Poznámka:
Tento kód nefunguje ve webových aplikacích, protože ASP.NET objekt nepodporuje My.WebServices .
Asynchronní volání webové služby
Odkaz na DemoTemperatureService webovou službu na adrese
http://www.xmethods.net. Adresa jehttp://www.xmethods.net/sd/2001/DemoTemperatureService.wsdlPřidejte obslužnou rutinu pro událost
getTempCompleted:Private Sub getTempCompletedHandler(ByVal sender As Object, ByVal e As net.xmethods.www.getTempCompletedEventArgs) MsgBox("Temperature: " & e.Result) End SubPoznámka:
Nelze použít příkaz
Handlesk přidružení obslužné rutiny události k událostem objektuMy.WebServices.Přidejte pole ke sledování, zda byla obslužná rutina události přidána k události
getTempCompleted:Private handlerAttached As Boolean = FalsePřidejte metodu, která v případě potřeby přidá obslužnou rutinu události do
getTempCompletedudálosti a zavolá metodugetTempAsync: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 SubChcete-li volat webovou metodu
getTempasynchronně, zavolejte metoduCallGetTempAsync. Po dokončení webové metody se její návratová hodnota předá obslužné rutině událostigetTempCompletedHandler.