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.wsdlAggiungere 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 SubAnnotazioni
Non è possibile utilizzare l'istruzione
Handlesper associare un gestore eventi agliMy.WebServiceseventi dell'oggetto.Aggiungere un campo per tenere traccia se il gestore eventi è stato aggiunto all'evento
getTempCompleted:Private handlerAttached As Boolean = FalseAggiungere un metodo per aggiungere il gestore eventi all'evento
getTempCompleted, se necessario, e per chiamare ilgetTempAsyncmetodo :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 SubPer chiamare il
getTempmetodo Web in modo asincrono, chiamare ilCallGetTempAsyncmetodo . Al termine del metodo Web, il relativo valore restituito viene passato algetTempCompletedHandlergestore eventi.