使用泛型类型进行交互操作
更新:2007 年 11 月
COM 模型不支持泛型类型的概念。因此,泛型类型不能直接用于 COM Interop。
不支持的操作
下列不受支持的操作将失败,并显示 E_NOINTERFACE 错误:
从 COM 访问泛型接口。
访问从泛型类派生的非泛型类的类接口。
为泛型类生成类接口。例如,不能为 MyGenericType<T> 类生成 _MyGenericType 接口。
支持的操作
您可以使用非泛型基接口间接访问泛型类。例如,考虑以下类型:
[C#]
class MyClass <T> : IMyClass, IEnumerable<int>
{
…
}
COM 客户端可以使用 IMyClass 接口调用此类型的实例,但调用 _MyClass、_MyClass <T> 或 IEnumerable<T> 将失败。