1

我已经阅读了几篇关于如何在 VB .Net 应用程序中连接到 WCF 服务的文章,但没有什么是 100% 具体地了解正在发生的事情以及发生在什么事件下(如果有的话)。

我有一个用 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

现在这会返回错误 Expression doesn't generate a value

我知道这是一个 List 并且它返回一些值(Web 服务也已经通过其他方式进行了测试)。阅读了十几篇似乎在 C# 中的文章,似乎我必须在一个事件中包含一些东西,但真的很难解决这个问题,看看我做错了什么。

任何人都可以指导我或指出可以帮助我克服上述问题的东西吗?

4

1 回答 1

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 还有什么不同。

于 2013-08-01T19:51:33.180 回答