Взаимодействие с помощью универсальных типов
COM-модель не поддерживает понятие универсальных типов. Следовательно, универсальные типы нельзя напрямую использовать для COM-взаимодействия.
Неподдерживаемые действия
Следующие действия не поддерживаются и приведут к сбою с ошибкой E_NOINTERFACE:
Доступ к универсальными интерфейсам из COM.
Доступ к интерфейсам классов для неуниверсальных классов, производных от универсальных классов.
Создание интерфейсов классов для универсальных классов. Например, интерфейс _MyGenericType не может быть создан для класса MyGenericType<T>.
Поддерживаемые действия
Доступ к универсальному классу можно получить неявно, используя неуниверсальный базовый интерфейс. Например, рассмотрим следующий тип.
[C#]
class MyClass <T> : IMyClass, IEnumerable<int>
{
…
}
COM-клиенты могут выполнять вызовы экземпляров этого типа, используя интерфейс IMyClass, но вызовы как _MyClass, _MyClass <T>, так и IEnumerable<T> закончатся неудачей.
См. также
Ссылки
Универсальные шаблоны (Руководство по программированию на C#)