ジェネリック型を使用する相互運用

COM モデルは、ジェネリック型の概念をサポートしていません。 したがって、ジェネリック型を COM 相互運用に対して直接使用することはできません。

サポートされていない操作

次の操作はサポートされていないため、E_NOINTERFACE エラーで失敗します。

  • COM からジェネリック インターフェイスへのアクセス。

  • ジェネリック クラスから派生する非ジェネリック クラスのクラス インターフェイスへのアクセス。

  • ジェネリック クラスのクラス インターフェイスの生成。 たとえば、_MyGenericType インターフェイスは MyGenericType<T> クラスに対しては生成できません。

サポートされている操作

非ジェネリック ベースのインターフェイスを使用して、ジェネリック クラスに間接的にアクセスできます。 次の型の例を示します。

[C#]

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

COM クライアントは、IMyClass インターフェイスを使用してこの型のインスタンスを呼び出すことができますが、_MyClass、_MyClass <T> または IEnumerable<T> への呼び出しは失敗します。

参照

参照

ジェネリック (C# プログラミング ガイド)

その他の技術情報

アンマネージ コードとの相互運用

Generics (Visual C++)