관리 코드에서 COM 형식 사용

어셈블리에 정의된 COM 형식은 다른 모든 관리되는 형식과 같습니다. 관리되는 클라이언트에서는 일반적인 방법으로 COM 형식의 새 인스턴스를 만들고 다른 모든 관리되는 클래스에 대해서와 마찬가지로 메타데이터를 통해 클래스 정보를 얻을 수 있습니다. 또한 다른 모든 관리되는 클래스에서와 마찬가지로 개체 뷰어를 통해 메서드 구문을 검사하거나 리플렉션을 통해 메서드 구문을 가져올 수 있습니다. COM 개체에서 실패인 HRESULT를 반환하면 .NET Framework 클라이언트에서는 해당 예외를 catch합니다.

COM 형식과의 상호 작용을 가능하게 하는 형식 정보를 다음 두 가지 방법으로 응용 프로그램에서 포함할 수 있습니다.

  • 포함된 interop 형식 사용. .NET Framework 버전 4 및 이후 버전에서는 interop 어셈블리의 형식 정보를 실행 파일에 포함하도록 컴파일러에 지시할 수 있습니다. 컴파일러는 응용 프로그램에서 사용하는 형식 정보만 포함합니다. 응용 프로그램과 함께 interop 어셈블리를 배포할 필요가 없습니다. 이것이 권장되는 방법입니다.

  • interop 어셈블리 배포. interop 어셈블리에 대한 표준 참조를 만들 수 있습니다. 이 경우 interop 어셈블리가 응용 프로그램과 함께 배포되어야 합니다. 이 방법을 채택하고 전용 COM 구성 요소를 사용하지 않는 경우 관리 코드에 통합할 COM 구성 요소의 작성자가 게시한 PIA(주 interop 어셈블리)를 항상 참조합니다. 주 interop 어셈블리의 생성과 사용에 대한 자세한 내용은 주 Interop 어셈블리를 참조하십시오.

참고참고

포함된 interop 형식을 사용하면 COM 구성 요소 작성자가 게시한 주 interop 어셈블리의 interop 형식을 포함할 수 있습니다.그러나 응용 프로그램과 함께 주 interop 어셈블리를 배포할 필요가 없습니다.

포함된 interop 형식을 사용하면 대부분의 응용 프로그램에서 COM 구성 요소의 일부 기능만 사용하게 되므로 응용 프로그램의 크기가 줄어듭니다. 형식 정보를 포함하면 컴파일러의 효율성이 매우 높아집니다. 응용 프로그램에서 COM 인터페이스의 일부 메서드만 사용할 경우 컴파일러는 사용되지 않는 메서드는 포함하지 않습니다. 포함된 형식 정보가 있는 응용 프로그램끼리 상호 작용하거나 포함된 형식 정보가 있는 응용 프로그램이 주 interop 어셈블리를 사용하는 응용 프로그램과 상호 작용하면 공용 언어 런타임에서는 동일 형식 규칙을 사용하여 동일한 이름의 두 형식이 동일한 COM 형식을 나타내는지 확인합니다.

실행 중인 COM 개체에 대한 참조를 가져오거나 해제하는 것은 실행 중인 다른 모든 관리되는 개체에 대한 참조를 가져오거나 해제하는 것과 동일합니다. .NET Framework 클라이언트에서 COM 개체에 대한 참조를 가져오거나 해제하면, 런타임에서는 다른 모든 COM 클라이언트와 마찬가지로 COM 개체에 대한 참조 횟수를 유지합니다. 또한 .NET Framework 클라이언트에서는 다른 모든 관리되는 서버 개체에 대해서와 마찬가지로 해당 개체를 가비지 수집 대상으로 취급합니다.

Visual Studio에서는 형식 정보를 응용 프로그램 또는 추가 기능에 손쉽게 포함할 수 있습니다. 예제를 보려면 연습: Microsoft Office 어셈블리의 형식 정보 포함(C# 및 Visual Basic)연습: 관리되는 어셈블리의 형식 포함(C# 및 Visual Basic)를 참조하십시오.

이 단원의 항목에 대한 샘플을 보려면 COM Interop 샘플: .NET 클라이언트 및 COM 서버를 참조하십시오.

형식 일치에 대한 규칙은 동일 형식 및 포함된 Interop 형식에서 설명합니다. 그러나 COM 개체를 사용하기 위해 이러한 규칙을 알고 있어야 하는 것은 아닙니다.

참고 항목

작업

연습: Microsoft Office 어셈블리의 형식 정보 포함(C# 및 Visual Basic)

연습: 관리되는 어셈블리의 형식 포함(C# 및 Visual Basic)

개념

.NET Framework에 COM 구성 요소 노출

어셈블리의 COM 형식 검사

COM 개체 활성화

메서드, 속성 및 이벤트 호출

상호 운용을 위한 디자인 고려 사항

COM 래퍼