我有一个 WCF 服务,其中一个方法(或操作契约)使用特定类型的通用列表作为参数,但是当我尝试使用此服务并调用此特定方法时,我收到此错误
Cannot convert type 'System.Collections.Generic.List<CA.CCS.sCmd>' to 'CA.CCS.sCmd[]'
我不知道为什么在消费者代码中需要对象数组而不是通用列表。
我只想将该参数作为通用列表发送,而不在客户端或服务器上进行任何转换,因为它会影响服务性能。
我在堆栈溢出上发现了类似的问题,但没有一个能解决我的问题。
非常感谢您的回复或指向其他人回复的链接。
更新: 当我尝试添加服务引用时出现此窗口,在这里找不到任何设置
最佳答案
因为您仍在使用 VS2005,并且您的代理生成器显然想将其转换为数组参数,所以您只需转换您的 List<T>
到 T[]
每当您调用此方法时。
因为你有一个 List<T>
例如,你可以只使用它的 ToArray
方法(自 .NET 2.0 起支持)。所以不要调用 SomeMethod(myList)
, 你可以做 SomeMethod(myList.ToArray())
.
关于c# - 无法将泛型列表作为参数发送到 WCF 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7686297/