Exposing a Collection class to COM
本篇最初在2008年3月26日发表于我的MSN空间
原帖:Return BindingList to VB6 via COM Interop
客户想把.NET数据类型对应在VB6中,在转换BindingList这个泛型时遇到了问题。查了一下MSDN Forum,一个MVP牛人给出了答案:COM类型不支持泛型接口。事实上,有一个简单的方法判断这个类型是否被COM支持,即COMVisible是否为True。例如在这个问题中,客户可以考虑自定义一个继承自ICollection接口的泛型,ICollection是支持ComVisible的。
CodeProject上有一篇非常好的文章,虽然是反向研究在VB中写一个可以在.NET端调用的Collection,但已经非常说明问题了。文章如下
Understanding Classic COM Interoperability With .NET Applications (Using COM Collections from .NET Applications)
客户对这个问题的反馈比较好:Thank you for the reply, it's a great help.
Bruno Yu