我在进行C#与Excel的互操作时,我从C#调用宏,并期望得到对象数组。我能够从返回2维数组的宏中获取到2维对象数组。
不过,另一个(第三方)宏应该返回一个一维数组。我无法让(object[])xlApp.Run(...)
正常工作(它会引发异常),并且调试器中的类型信息显示结果的类型为Object[*]
。异常的实际消息是
Unable to cast object of type 'System.Object[*]' to type 'System.Object[]'.
这个 Object[*]
类型是什么,如何从中检索一个一维数组?
编辑:我想到这可能意味着一个VARIANT的SAFEARRAY。但是,两个问题出现了:为什么二维数组没有问题?如何将SAFEARRAY转换为C#数组?