将ArrayList从VB.Net传递给C#WebServices

时间:2010-09-23 14:37:16

标签: c# vb.net web-services asmx arraylist

我有一个不值得羡慕的任务,就是清理一个相当混乱的VB.Net客户端。总体计划是将所有计算移动到WebServices,我可以确切地看到如何执行此操作,但它涉及将大量不同的变量传递给WebServices。

我选择使用ArrayList,因为我在Java中大量使用它,并且在C#(ASMX)WebService和C#客户端(基于Windows窗体)之间传递ArrayLists没有任何问题。

但是,VB.Net客户端应用程序不希望将ArrayList传递给WebServices,给出编译器错误“类型为'System.Collections.ArrayList'的值'无法转换为'对象的1维数组' 。“

2 个答案:

答案 0 :(得分:3)

当您将ArrayList传递给Web服务时,只需在其上调用ToArray()

答案 1 :(得分:0)

感谢所有帮助过的人,但我找到了答案。该问题涉及VB.Net对WebService对象传递的处理;与C#无关。 正如ck所说,当我将它传递给WebService时,我不得不在ArrayList上调用'.ToArray()',但后来不得不在新的ArrayList上使用'AddRange()'来获取结果。代码如下:

Dim results As New ArrayList;
results.AddRange(webQuote.makeQuoteFromQuoteInputs(quoteValues.ToArray()))

或者一般地说:

Dim a as New ArrayList;
a.AddRange(webService.Method(sendingAL.ToArray()))