다음을 통해 공유


제네릭 형식을 통한 상호 운용

COM 모델에서는 제네릭 형식의 개념을 지원하지 않습니다. 따라서 제네릭 형식을 COM interop에 직접 사용할 수는 없습니다.

지원되지 않는 작업

다음 작업은 지원되지 않으며, E_NOINTERFACE 오류와 함께 실패합니다.

  • COM에서 제네릭 인터페이스 액세스

  • 제네릭 클래스에서 파생되는 비제네릭 클래스의 클래스 인터페이스 액세스

  • 제네릭 클래스의 클래스 인터페이스 생성. 예를 들어, MyGenericType<T> 클래스에 대해 _MyGenericType 인터페이스를 생성할 수 없습니다.

지원되는 작업

비제네릭 기본 인터페이스를 사용하여 제네릭 클래스에 간접적으로 액세스할 수 있습니다. 다음 형식을 예로 들 수 있습니다.

[C#]

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

COM 클라이언트가 IMyClass 인터페이스를 사용하여 이 형식의 인스턴스를 호출할 수 있지만, _MyClass, _MyClass <T> 또는 IEnumerable<T>에 대한 호출은 실패합니다.

참고 항목

참조

제네릭(C# 프로그래밍 가이드)

기타 리소스

비관리 코드와의 상호 운용

Generics (Visual C++)