Share via


Interoperation mit generischen Typen

Das COM-Modell unterstützt das Konzept von generischen Typen nicht. Infolgedessen können generische Typen für COM-Interop nicht direkt verwendet werden.

Nicht unterstützte Aktionen

Die folgenden Aktionen werden nicht unterstützt und schlagen mit einem E_NOINTERFACE-Fehler fehl:

  • Zugriff auf generische Schnittstellen von COM.

  • Zugriff auf Klassenschnittstellen für nicht generische Klassen, die von generischen Klassen abgeleitet sind.

  • Generieren von Klassenschnittstellen für generische Klassen. Zum Beispiel kann die _MyGenericType-Schnittstelle nicht für die MyGenericType<T>-Klasse generiert werden.

Unterstützte Aktionen

Sie können auf eine generische Klasse mit einer nicht generischen Basisschnittstelle indirekt zugreifen. Betrachten Sie z. B. den folgenden Typ:

[C#]

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

COM-Clients können Instanzen dieses Typs mit der IMyClass-Schnittstelle aufrufen, aber Aufrufe von _MyClass, _MyClass <T> oder IEnumerable<T> führen zu einem Fehler.

Siehe auch

Referenz

Generika (C#-Programmierhandbuch)

Weitere Ressourcen

Interoperation mit nicht verwaltetem Code

Generics (Visual C++)