Compartir a través de


Interoperar utilizando tipos genéricos

El modelo COM no admite el concepto de tipos genéricos. Por consiguiente, los tipos genéricos no se pueden utilizar directamente para la interoperabilidad COM.

Acciones no compatibles

No se admiten las acciones siguientes y se producirá un error E_NOINTERFACE:

  • Tener acceso a las interfaces genéricas de COM.

  • Tener acceso a las interfaces de clase para clases nongeneric que se derivan de clases genéricas.

  • Generar interfaces de clase para clases genéricas. Por ejemplo, la interfaz _MyGenericType no se puede generar para la clase MyGenericType<T>.

Acciones compatibles

Es posible tener acceso a una clase genérica de forma indirecta utilizando una interfaz base nongeneric. Por ejemplo, veamos el siguiente tipo:

[C#]

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

Los clientes COM pueden realizar llamadas a instancias de este tipo utilizando la interfaz IMyClass, pero se producirá un error si se realizan llamadas a _MyClass, _MyClass <T> o IEnumerable<T>.

Vea también

Referencia

Genéricos (Guía de programación de C#)

Otros recursos

Interoperar con código no administrado

Generics (Visual C++)