【问题标题】:Why can't value of type List(Of Integer) be converted to Integer when sending value to WCF service?向 WCF 服务发送值时,为什么不能将 List(Of Integer) 类型的值转换为 Integer?
【发布时间】:2017-04-03 04:38:52
【问题描述】:

客户端代码:

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

【问题讨论】:

  • 因为整数列表不是整数。您必须将其转换为所需的数据类型
  • 为什么我不能编辑这个。这是 VB 不是 C# 有人请更正标签。
  • 一定是其他人在修改
  • 感谢 vivek,我的问题是我提到了服务中的整数列表,但我只能发送整数
  • value.ToArray()

标签: asp.net vb.net web-services wcf wcf-data-services


【解决方案1】:

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

List(Of T) 类有一个名为ToArray() 的函数,它将以数组的形式返回列表。调用它,它应该可以工作。

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

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


根据this answer,当使用 WCF 时,List(Of T) 会在客户端转换为数组,这就是为什么 DoWork 方法需要数组而不是您指定的 List(Of Integer) 的原因。不过,这种行为显然可以修改。

【讨论】:

  • @JohnNero:没问题!我很乐意提供帮助!
  • 投反对票的人能否解释一下为什么这适合投反对票?我的代码可能无法解决它需要一个数组而不是 List(Of T) 的问题,但我提到了另一个答案作为替代方案 - 因为我不熟悉 WCF,所以我不能做更多。
猜你喜欢
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
  • 2013-04-07
  • 2022-09-30
  • 1970-01-01
  • 2010-09-06
  • 2016-12-26
相关资源
最近更新 更多