Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo esempio viene associato un gestore all'evento del gestore asincrono di un servizio Web, in modo che possa recuperare il risultato di una chiamata asincrona al metodo. In questo esempio è stato usato il servizio Web DemoTemperatureService all'indirizzo http://www.xmethods.net
.
Quando si fa riferimento a un servizio Web nel progetto nell'IDE (Integrated Development Environment) di Visual Studio, viene aggiunto all'oggetto e l'IDE My.WebServices
genera una classe proxy client per accedere a un servizio Web specificato
La classe proxy consente di chiamare i metodi del servizio Web in modo sincrono, in cui l'applicazione attende il completamento della funzione. Inoltre, il proxy crea membri aggiuntivi per chiamare il metodo in modo asincrono. Per ogni funzione del servizio Web, NameOfWebServiceFunction, il proxy crea una subroutine NameOfWebServiceFunctionAsync
, un evento NameOfWebServiceFunctionCompleted
e una classe NameOfWebServiceFunctionCompletedEventArgs
. In questo esempio viene illustrato come usare i membri asincroni per accedere alla getTemp
funzione del servizio Web DemoTemperatureService.
Annotazioni
Questo codice non funziona nelle applicazioni Web, perché ASP.NET non supporta l'oggetto My.WebServices
.
Chiamare un servizio Web in modo asincrono
Fare riferimento al servizio Web DemoTemperatureService all'indirizzo
http://www.xmethods.net
. L'indirizzo èhttp://www.xmethods.net/sd/2001/DemoTemperatureService.wsdl
Aggiungere un gestore eventi per l'evento
getTempCompleted
:Private Sub getTempCompletedHandler(ByVal sender As Object, ByVal e As net.xmethods.www.getTempCompletedEventArgs) MsgBox("Temperature: " & e.Result) End Sub
Annotazioni
Non è possibile utilizzare l'istruzione
Handles
per associare un gestore eventi agliMy.WebServices
eventi dell'oggetto.Aggiungere un campo per tenere traccia se il gestore eventi è stato aggiunto all'evento
getTempCompleted
:Private handlerAttached As Boolean = False
Aggiungere un metodo per aggiungere il gestore eventi all'evento
getTempCompleted
, se necessario, e per chiamare ilgetTempAsync
metodo :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
Per chiamare il
getTemp
metodo Web in modo asincrono, chiamare ilCallGetTempAsync
metodo . Al termine del metodo Web, il relativo valore restituito viene passato algetTempCompletedHandler
gestore eventi.