2013-08-01 156 views
1

我已經閱讀了一些關於如何連接到VB.Net應用程序中的WCF服務的文章,但沒有什麼是100%具體的理解發生什麼以及在什麼事件下(如果有的話)。WCF與Windows Phone 8

我在C#中創建一個服務,它具有以下方法:

public List<Customer> GetCustomers() 
    { 
     var c = myDataContext.Customers.ToList(); 
     return c; 
    } 

因此,我們知道它返回的客戶名單。現在,在Windows Phone應用程序(VB .NET項目),我嘗試和創建服務的實例,並通過客戶列表迭代:

Dim CustService As New CService.CustomerClient 

For Each i In CustService.GetCustomers 

Next 

現在這個返回錯誤表達不生產價值

我知道這是一個List,它返回一些值(Web服務也被其他方式測試過)。閱讀似乎在C#中的十幾篇文章,似乎我必須在事件內部有某些東西,但真的很努力地去解決這個問題。

任何人都可以引導我或指向我的東西,可以幫助我克服上述問題?

回答

2

在WCF中,返回值的方法使用異步回調。試想一下:

在WCF:在服務

<OperationalContract> 
Public Function GetCustomers() As List(Of Customer) 
    Using db As New DatabaseContext 
    Return db.Customers.ToList 
    End Using 
End Function 

方法:

Private customers As List(Of CService.Customer) 
Private Sub GetCustomers() 
Dim cs As New CService.CustomerClient 
Addhandler cs.GetCustomersCompleted, AddressOf CustomersCompleted 
cs.GetCustomersAsync() 
End Sub 
Private Sub CustomersCompleted(sender As Object, e As GetCustomersEventArgs) 
    customers = e.Result 
End If 

我不知道還有什麼會比較差異的Windows Phone 8

+0

按照上面的,我必須遵循http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj684580(v=vs.105).aspx上的說明,以使其完全正常工作 – Computer