Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este ejemplo se asocia un controlador al evento de controlador asincrónico de un servicio web, de modo que pueda recuperar el resultado de una llamada de método asincrónico. En este ejemplo se usó el servicio web DemoTemperatureService en http://www.xmethods.net.
Cuando se hace referencia a un servicio web en el proyecto en el entorno de desarrollo integrado (IDE) de Visual Studio, se agrega al My.WebServices objeto y el IDE genera una clase de proxy de cliente para acceder a un servicio web especificado.
La clase de proxy permite llamar a los métodos de servicio web de forma sincrónica, donde la aplicación espera a que se complete la función. El proxy crea además otros miembros para ayudar a llamar al método asincrónicamente. Para cada función de servicio web, NameOfWebServiceFunction, el proxy crea una subrutina NameOfWebServiceFunctionAsync, un evento NameOfWebServiceFunction y una clase CompletedCompletedEventArgs. En este ejemplo se muestra cómo usar los miembros asincrónicos para acceder a la getTemp función del servicio web DemoTemperatureService.
Nota:
Este código no funciona en aplicaciones web, ya que ASP.NET no admite el My.WebServices objeto .
Llamada a un servicio web de forma asincrónica
Haga referencia al servicio web DemoTemperatureService en
http://www.xmethods.net. La dirección eshttp://www.xmethods.net/sd/2001/DemoTemperatureService.wsdlAgregue un controlador de eventos para el
getTempCompletedevento:Private Sub getTempCompletedHandler(ByVal sender As Object, ByVal e As net.xmethods.www.getTempCompletedEventArgs) MsgBox("Temperature: " & e.Result) End SubNota:
No se puede usar la
Handlesinstrucción para asociar un controlador de eventos a losMy.WebServiceseventos del objeto.Agregue un campo para realizar un seguimiento si el controlador de eventos se ha agregado al
getTempCompletedevento:Private handlerAttached As Boolean = FalseAgregue un método para agregar el controlador de eventos al
getTempCompletedevento, si es necesario, y para llamar algetTempAsyncmétodo :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 SubLlame al método
getTemppara llamar al método webCallGetTempAsyncasincrónicamente. Cuando finaliza el método Web, su valor devuelto se pasa al controlador degetTempCompletedHandlereventos.