使用泛型型別互通

COM 模型不支援泛型型別的概念。 因此,泛型型別不能直接供 COM interop 使用。

不支援的動作

下列動作不受支援,而且會失敗而附 E_NOINTERFACE 錯誤:

  • 從 COM 存取泛型介面

  • 存取衍生自泛型類別的非泛型類別的類別介面

  • 產生泛型類別的類別介面。 例如,無法為 MyGenericType<T> 類別產生 _MyGenericType 介面

支援的動作

您可以使用非泛型基底介面,間接存取泛型類別。 例如,以下列型別為例:

[C#]

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

COM 用戶端可以使用 IMyClass 介面,呼叫此型別的執行個體,但呼叫 _MyClass、_MyClass <T> 或 IEnumerable<T> 將失敗。

請參閱

參考

泛型 (C# 程式設計手冊)

其他資源

與 Unmanaged 程式碼互通

Generics (Visual C++)