У меня есть веб-сервис C #, который возвращает данные двумерного массива. Поскольку веб-сервисы не могут возвращать многомерные данные, я сделал так, чтобы он возвращал неровный массив.
[OperationContract]
object[][] WSGetData();
У меня есть библиотека классов COM Visible C #. Это тонкий слой, который использует эту услугу и предоставляет ее клиентам Excel VBA. (По определенным причинам мы решили не идти через VSTO или маршруты Web Services References Toolkit.)
class Wrapper
{
public object[][] GetData()
{
return WSproxy.WSGetData(); //Calling the webservice method
}
}
Я вызываю метод в VBA, как показано ниже.
Dim data as Variant
data = wrapperObj.GetData();
Я получаю ошибку несоответствия типов.
Когда я изменил класс Wrapper для преобразования вывода «неровного массива» веб-службы в многомерный вывод (т. Е. Object [,]) перед возвратом в VBA, он работает нормально. Но я не хочу этого делать, потому что это повлияет на производительность, так как мы будем передавать огромные данные.
Каков наилучший способ достичь этого, пожалуйста.
Спасибо за любые указания ..