Share via


Interoperando usar tipos genéricos

O modelo COM não suporta o conceito de tipos genéricos. Conseqüentemente, os tipos genéricos não podem ser usados diretamente para interoperabilidade COM.

Ações não suportadas.

As ações a seguir não são suportadas e falhará com um E_NOINTERFACE erro:

  • Acessando a interfaces genéricas de COM.

  • Acessando as interfaces de classe para não genérico classes derivadas de classes genéricas.

  • Gerar interfaces de classe para classes genéricas. Por exemplo, o _MyGenericType interface não pode ser gerado para o MyGenericType<T> classe.

Ações suportadas

Você pode acessar uma classe genérica indiretamente usando uma interface de base não genérico. Por exemplo, considere o seguinte tipo:

[C#]

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

Clientes COM podem fazer chamadas para instâncias desse tipo usando o IMyClass interface, mas chamadas para qualquer _MyClass, _MyClass <T> ou IEnumerable<T> irá falhar.

Consulte também

Referência

Generics (Guia de programação C#) 

Outros recursos

Interoperação com Código Não Gerenciado

Generics (Visual C++)