我有很多函数,基本上看起来像…
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的类型,我怀疑字符串的安全性?
有人有这样的示例代码吗?
您不能将泛型类型公开给COM,它根本不支持它。Dictionary没有[ComVisible(true)]属性的原因。直观地说,像C++这样的语言,像VBScript或Javascript这样的脚本语言,VB6和VBA等等,都不了解.NET泛型。只有.NET程序才能使用它,而不需要COM互操作。
如果你想公开一个字典,那么你需要创建自己的字典,或者简单地回到旧的哈希表。即[ComVisible],您的类型库将自动包含mscorlib.tlb