2013-08-01 153 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