Interoperabilità tramite tipi generici

Il modello COM non supporta il concetto di tipi generici. Di conseguenza, non è possibile utilizzare direttamente i tipi generici per l'interoperabilità COM.

Azioni non supportate

Le azioni illustrate di seguito non sono supportate e avranno esito negativo, generando un errore E_NOINTERFACE:

  • Accesso alle interfacce generiche da COM.

  • Accesso alle interfacce di classe per classi non generiche che derivano da classi generiche.

  • Generazione di interfacce di classe per classi generiche. Non è possibile, ad esempio, generare l'interfaccia _MyGenericType per la classe MyGenericType<T>.

Azioni supportate

È possibile accedere indirettamente a una classe generica utilizzando un'interfaccia di base non generica. Si consideri ad esempio il tipo seguente:

[C#]

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

I client COM possono effettuare chiamate alle istanze di tale tipo mediante l'interfaccia IMyClass, tuttavia le chiamate a _MyClass, _MyClass <T> o IEnumerable<T> avranno esito negativo.

Vedere anche

Riferimenti

Generics (Guida per programmatori C#)

Altre risorse

Interoperabilità con codice non gestito

Generics (Visual C++)