Передача ArrayList из VB.Net в C # WebServices - PullRequest
0 голосов
/ 23 сентября 2010

У меня незавидная задача по уборке довольно грязного клиента VB.Net. Общий план состоит в том, чтобы перенести все расчеты на WebServices, и я точно вижу, как это сделать, но это включает передачу большого количества различных переменных в WebServices.

Я решил использовать ArrayList, так как много работал с ними в Java, и у меня не было проблем с передачей ArrayLists между C # (ASMX) WebService и клиентом C # (на основе Windows Forms).

Однако клиентское приложение VB.Net не хочет передавать ArrayList в WebServices, что приводит к ошибке компилятора «Значение типа« System.Collections.ArrayList »не может быть преобразовано в« одномерный массив объекта ». . "

Ответы [ 2 ]

3 голосов
/ 23 сентября 2010

Просто позвоните ToArray() в свой ArrayList, когда вы передадите его веб-службе.

0 голосов
/ 24 сентября 2010

Спасибо всем, кто помог, но мне удалось найти ответ.Проблема связана с обработкой VB.Net проходов объекта WebService;ничего не делать с C #.Как сказал ck, мне пришлось вызывать .ToArray () для ArrayList, когда я передавал его в WebService, но затем пришлось использовать AddRange () для свежего ArrayList, чтобы получить результаты.Код выглядит следующим образом:

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

Или в общем случае:

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