0

COM 不支持泛型?复制它List<T>以使其在 tlh 文件中可见的最佳方法是什么。编辑:: 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# 中?

4

1 回答 1

2

不支持正确的泛型类型:

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

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

也许这是开始的地方:

C# 向 COM 公开类 - 通用集合

于 2013-07-15T06:45:05.210 回答