Interopérabilité à l'aide de types génériques
Le modèle COM ne prend pas en charge le concept des types génériques. Par conséquent, les types génériques ne peuvent pas être utilisés directement pour COM Interop.
Actions non prises en charge
Les actions suivantes ne sont pas prises en charge et échoueront avec une erreur E_NOINTERFACE :
Accès aux interfaces génériques à partir de COM.
Accès aux interfaces de classe pour les classes non génériques dérivées de classes génériques.
Génération d'interfaces de classe pour les classes génériques. Par exemple, l'interface _MyGenericType ne peut pas être générée pour la classe MyGenericType<T>.
Actions prises en charge
Vous pouvez accéder à une classe générique de manière indirecte à l'aide d'une interface de base non générique. Considérons par exemple le type suivant :
[C#]
class MyClass <T> : IMyClass, IEnumerable<int>
{
…
}
Les clients COM peuvent appeler des instances de ce type à l'aide de l'interface IMyClass, mais les appels à _MyClass, _MyClass <T> ou IEnumerable<T> échoueront.
Voir aussi
Référence
Génériques (guide de programmation C#)