我有一个不值得羡慕的任务,就是清理一个相当混乱的VB.Net客户端。总体计划是将所有计算移动到WebServices,我可以确切地看到如何执行此操作,但它涉及将大量不同的变量传递给WebServices。
我选择使用ArrayList,因为我在Java中大量使用它,并且在C#(ASMX)WebService和C#客户端(基于Windows窗体)之间传递ArrayLists没有任何问题。
但是,VB.Net客户端应用程序不希望将ArrayList传递给WebServices,给出编译器错误“类型为'System.Collections.ArrayList'的值'无法转换为'对象的1维数组' 。“
答案 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()))