将泛型代码(List<;T>;)导出到COM
本文关键字:COM gt List 泛型 lt 代码 | 更新日期: 2023-09-27 18:22:15
COM不支持泛型?复制这个List<T>
以使其在tlh文件中COM可见的最佳方法是什么。编辑::c#::
[ComVisible(true)]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("FA677671-5E26-4307-AD2B-19BF1E7AFF8B")]
public interface IEvents
{
IEvents[] CreateListeners();
}
在C++中,我有
CComSafeArray<CSharp::IEvents> ppSA;
pInterface->CreateListeners(ppSA->GetSafeArrayPtr());
我的问题是,我应该在这个创建实例函数中做什么,以便复制这个语句List evt=new List();在托管c#中?
正确,不支持泛型类型:
COM模型不支持泛型类型的概念。因此,泛型类型不能直接用于COM互操作。
http://msdn.microsoft.com/en-us/library/ms229590.aspx
也许这就是开始的地方:
C#将类公开给COM-泛型集合