为什么在向 WCF 服务发送值时不能将 List(Of Integer) 类型的值转换为 Integer?

Why can't value of type List(Of Integer) be converted to Integer when sending value to WCF service?

客户代码:

Public Sub sendEmpValue(name As String, value As List(Of Integer))
    Dim serviceObject As New Service.GetEmployeeClient
    serviceObject.DoWork(name, value)** getting error at the value**
End Sub

服务代码:

Sub DoWork(name As String, value As List(Of Integer)) Implements IGetEmployee.DoWork
End Sub

DoWork 方法需要一个 Integer(),它是 整数数组

List(Of T) class has got a function called ToArray() 将 return 列表作为数组。调用它,它应该可以工作。

serviceObject.DoWork(name, value.ToArray())

the MSDN documentation 上阅读有关数组的更多信息。


根据 this answer,当使用 WCF 时,List(Of T) 在客户端被转换为数组,这就是 DoWork 方法需要数组而不是 [=17= 的原因] 正如您指定的那样。不过,这种行为显然可以修改。