如何将VB.net泛型类型实例强制转换为COM类型?

时间:2013-11-18 22:53:51

标签: vb.net

我有许多看起来基本上像...的功能。

 Public Function Keys() As Dictionary(Of Integer, myData).KeyCollection

我正在尝试将此类暴露给COM,因此我可以在Excel中使用它,但VS抱怨...

 Warning: Type library exporter encountered a generic type instance in a signature. Generic code may not be exported to COM.

我认为这意味着我必须将其复制到可以导出到COM的类型,我怀疑是SAFEARRAY的字符串?

任何人都有这样的示例代码吗?

1 个答案:

答案 0 :(得分:1)

您不能将通用类型公开给COM,它不支持它。 Dictionary没有[ComVisible(true)]属性的原因。有些直观明显,像C ++这样的语言,像VBScript或Javascript,VB6和VBA这样的脚本语言等,并不了解有关.NET泛型的bean。只有.NET程序可以使用它,你不需要COM互操作。

如果您想要公开字典,那么您需要创建自己的字典或简单地回退到旧的Hashtable。哪个是[ComVisible],您的类型库将自动包含mscorlib.tlb

相关问题