2010-09-23 14 views
0

我有清理一個相當混亂的VB.Net客戶端的不愉快的任務。總體規劃是將所有計算移動到WebServices,我可以看到如何執行此操作,但它涉及將大量不同的變量傳遞給WebServices。從VB.Net傳遞ArrayList到C#WebServices

我選擇使用ArrayList,因爲我已經在Java中大量使用ArrayList,並且沒有在C#(ASMX)WebService和C#客戶端(基於Windows窗體)之間傳遞ArrayLists的問題。

但是,VB.Net客戶端應用程序不想將ArrayList傳遞到WebServices中,從而發出編譯器錯誤「類型'System.Collections.ArrayList'的值無法轉換爲'Object的一維數組」「。

+2

請使用List Andrey 2010-09-23 14:39:36

+0

@Andrey爲什麼肯定列表是偉大的,但ArrayList的工作就好了。 – msarchet 2010-09-23 14:41:10

+0

@msarchet你是什麼意思工作正常?列表在各方面都更好。爲什麼要使用ArrayList呢? – Andrey 2010-09-23 14:49:28

回答

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())) 
2

當您將它傳遞給Web服務時,請在ArrayList上調用ToArray()

+0

感謝您的答覆,但仍然沒有喜悅。在這條線相同的錯誤: 昏暗的結果作爲ArrayList的= webQuote.makeQuoteFromQuoteInputs(quoteValues.ToArray())其中quoteValues是填充的ArrayList – Gargravarr 2010-09-23 14:59:08

+0

好,澄清這確實解決了將列表傳遞給WebService的問題時,但後來我得到了將該列表從WebService帶回的相同問題。解決的辦法是爲結果定義一個新的ArrayList,然後像這樣使用AddRange: Dim results As ArrayList; results.AddRange(webQuote.makeQuoteFromQuoteInputs(quoteValues.ToArray())) – Gargravarr 2010-09-24 12:10:34