【发布时间】:2010-04-19 10:35:58
【问题描述】:
我有一个用 Visual Fox Pro 9.0 编写的 COM 对象。其过程如下:
PROCEDURE GetArray(m.vcArrayName as String) as array
RETURN @&vcArrayName
在使用 C# 的 VS2010 项目中引用了 COM 对象。 C#中过程的签名是:
object GetArray(string vcArrayName);
调试时我可以看到返回的值是 {object[1..1]} 而类型是对象 {object[]}。展开变量,我可以看到它是一个以 1 为基数的数组,其中一个元素是一个空字符串 ("");
但是,我不能将此值转换为 object[]。我总是收到 InvalidCastException 并带有一条挪威消息,说我无法将 Object[*] 转换为 Object[]。
奇怪的是,如果 COM 对象返回一个二维数组,我可以毫无问题地将其转换为 object[,]。我觉得很奇怪,二维比一维更容易处理!
我想回答的问题是:
这个 Object[*] 业务是什么?谁能告诉我这是否是挪威异常消息中的错误翻译,或者 Object[*] 是否是某种我没听说过的晦涩的 C# 语法?
【问题讨论】:
标签: c# com integration casting visual-foxpro