使用泛型类型进行交互操作

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

不支持的操作

下列不受支持的操作将失败,并显示 E_NOINTERFACE 错误:

  • 从 COM 访问泛型接口。

  • 访问从泛型类派生的非泛型类的类接口。

  • 为泛型类生成类接口。 例如,不能为 MyGenericType<T> 类生成 _MyGenericType 接口。

支持的操作

您可以使用非泛型基接口间接访问泛型类。 例如,考虑以下类型:

[C#]

class MyClass <T> : IMyClass, IEnumerable<int>
{
   …
}

COM 客户端可以使用 IMyClass 接口调用此类型的实例,但调用 _MyClass、_MyClass <T> 或 IEnumerable<T> 将失败。

请参见

参考

泛型(C# 编程指南)

其他资源

与非托管代码交互操作

Generics (Visual C++)