Aracılığıyla paylaş


Nasıl yapılır: Bir Web Hizmetini Zaman Uyumsuz Olarak Çağırma (Visual Basic)

Bu örnek, zaman uyumsuz yöntem çağrısının sonucunu alabilmesi için bir Web hizmetinin zaman uyumsuz işleyici olayına bir işleyici ekler. Bu örnekte DemoTemperatureService Web hizmeti http://www.xmethods.net adresinde kullanılmıştır.

Visual Studio Tümleşik Geliştirme Ortamı'nda (IDE) projenizdeki bir Web hizmetine başvurdığınızda, bu hizmet nesnesine My.WebServices eklenir ve IDE, belirtilen bir Web hizmetine erişmek için bir istemci proxy sınıfı oluşturur

Proxy sınıfı, uygulamanızın işlevin tamamlanmasını beklediği Web hizmeti yöntemlerini zaman uyumlu olarak çağırmanıza olanak tanır. Buna ek olarak, ara sunucu yöntemi zaman uyumsuz olarak çağırmaya yardımcı olmak için ek üyeler oluşturur. Her Web hizmeti işlevi olan NameOfWebServiceFunction için, proxy bir NameOfWebServiceFunctionAsync alt yordam, bir NameOfWebServiceFunctionCompleted olayı ve bir NameOfWebServiceFunctionCompletedEventArgs sınıfı oluşturur. Bu örnek, DemoTemperatureService Web hizmetinin getTemp işlevine erişmek için zaman uyumsuz üyelerin nasıl kullanılacağını göstermektedir.

Uyarı

ASP.NET nesneyi desteklemediğinden My.WebServices bu kod Web uygulamalarında çalışmaz.

Bir Web hizmetini zaman uyumsuz olarak çağırma

  1. adresinde DemoTemperatureService Web hizmetine http://www.xmethods.netbaşvurun. Adres şu şekildedir:

    http://www.xmethods.net/sd/2001/DemoTemperatureService.wsdl
    
  2. getTempCompleted olayı için bir olay işleyicisi ekleyin:

    Private Sub getTempCompletedHandler(ByVal sender As Object,
        ByVal e As net.xmethods.www.getTempCompletedEventArgs)
    
        MsgBox("Temperature: " & e.Result)
    End Sub
    

    Uyarı

    Bir olay işleyicisini nesnenin Handles olaylarıyla ilişkilendirmek için deyimini My.WebServices kullanamazsınız.

  3. Olay işleyicisinin olaya eklenip eklenmediğini izlemek için getTempCompleted bir alan ekleyin:

    Private handlerAttached As Boolean = False
    
  4. Gerekirse getTempCompleted olayına olay işleyicisini eklemek ve getTempAsync yöntemini çağırmak için bir yöntem ekleyin:

    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
    

    getTemp Web yöntemini zaman uyumsuz olarak çağırmak için CallGetTempAsync yöntemini çağırın. Web yöntemi tamamlandığında, dönüş değeri olay işleyicisine getTempCompletedHandler geçirilir.

Ayrıca bakınız