将通用代码(List <t>)导出到COM </t>

时间:2013-07-15 06:31:05

标签: c# list generics com

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());

我的问题是我应该在这个Create实例函数中做什么,以便复制这个语句 列表evt = new List(); 在托管c#?

1 个答案:

答案 0 :(得分:2)

不支持正确的泛型类型:

  

COM模型不支持泛型类型的概念。因此,泛型类型不能直接用于COM互操作。

http://msdn.microsoft.com/en-us/library/ms229590.aspx

也许这是开始的地方:

C# exposing class to COM - Generic Collections