我有许多看起来基本上像...的功能。
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的字符串?
任何人都有这样的示例代码吗?
答案 0 :(得分:1)
您不能将通用类型公开给COM,它不支持它。 Dictionary没有[ComVisible(true)]属性的原因。有些直观明显,像C ++这样的语言,像VBScript或Javascript,VB6和VBA这样的脚本语言等,并不了解有关.NET泛型的bean。只有.NET程序可以使用它,你不需要COM互操作。
如果您想要公开字典,那么您需要创建自己的字典或简单地回退到旧的Hashtable。哪个是[ComVisible],您的类型库将自动包含mscorlib.tlb