Я делаю С# excel interop. Я вызываю макросы из С#, и я ожидаю массивы объектов. Я могу получить 2-мерные массивы объектов из макросов, которые возвращают 2-мерные массивы.
Однако другой (сторонний) макрос должен возвращать одномерный массив. Я не могу заставить (object[])xlApp.Run(...)
работать (он генерирует исключение), а информация типа в отладчике говорит, что результат имеет тип Object[*]
. Фактическое сообщение из исключения
Unable to cast object of type 'System.Object[*]' to type 'System.Object[]'.
Что это за тип Object[*]
и как получить из него одномерный массив?
EDIT. Мне пришло в голову, что это может означать SAFEARRAY of VARIANTS. Но тогда возникают два вопроса: почему все нормально с двумерными массивами? Как преобразовать SAFEARRAY в массив С#?