使用泛型型別互通
更新: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> 將失敗。