다음을 통해 공유


COM에 .NET Compact Framework 구성 요소 노출

업데이트: 2007년 11월

.NET Compact Framework 구성 요소를 네이티브 코드에 노출할 수 있지만 전체 .NET Framework와 비교했을 때 다음과 같은 상호 운용성에 차이가 있습니다.

관리되는 구성 요소 노출

네이티브 응용 프로그램에 관리되는 .NET Compact Framework 구성 요소를 제공할 수 있습니다. 이 프로세스에는 다음 작업이 포함됩니다.

  • 관리되는 형식을 디자인할 때는 COM 프로그래밍을 고려합니다. 예를 들면, 제네릭 형식을 사용하지 않습니다.

  • 관리되는 인터페이스에서 노출할 기능을 정의하고 관리되는 개체가 이 인터페이스를 구현하도록 합니다. 다음은 권장 사항입니다.

    • 관리되는 인터페이스에 GUID, InterfaceType 및 ComVisible 특성을 사용합니다.

    • 관리되는 개체에 ClassInterface(ClassInterfaceType.None) 특성을 사용합니다.

  • 관리되는 형식의 네이티브 정의를 만듭니다.

  • 관리되는 개체를 네이티브 코드에 COM 인터페이스로 전달합니다. 그러면 COM 인터페이스를 사용하여 네이티브 코드에서 관리되는 개체로 구현된 관리되는 함수를 호출할 수 있습니다.

.NET Compact Framework의 차이점

네이티브 코드에서 관리되는 .NET Compact Framework 함수를 호출하려면 먼저 런타임을 사용하여 관리되는 인터페이스 또는 대리자를 네이티브 코드로 마샬링해야 합니다. 즉, 관리되는 구성 요소를 네이티브 코드에 노출하려면 항상 관리되는 실행 파일을 사용하여 관리 코드로 시작해야 합니다.

다음과 같은 네이티브 코드와의 상호 운용성은 .NET Compact Framework에서 지원되지 않습니다.

  • Regasm.exe와 같은 어셈블리 등록 도구를 사용하여 COM 클라이언트가 관리되는 구성 요소를 COM 클래스로 사용합니다.

  • COM에서 관리되는 형식 활성화

  • 네이티브 코드에서 런타임 호스팅

  • ActiveX 컨트롤 호스팅. .NET Compact Framework는 AxHost 클래스를 지원하지 않으므로 Microsoft Visual Studio 2005 및 디자이너를 사용하여 ActiveX 컨트롤을 관리되는 폼에 부모로 지정할 수 없습니다. 그러나 .Net Compact Framework에서 COM interop이 지원되므로 고유한 ActiveX 컨테이너 호스트를 구축할 인프라가 있습니다.

  • 단일 스레드 아파트를 사용할 COM 초기화

  • 클래스 인터페이스 자동 생성. 명시적 인터페이스에서 네이티브 코드에 노출할 기능을 래핑해야 합니다.

  • GUID 자동 생성. 네이티브 코드에 각 인터페이스를 노출하려면 해당 인터페이스에 명시적 GUID를 제공해야 합니다.

노출된 관리되는 구성 요소의 디자인 타임 특성

관리되는 구성 요소를 COM에 노출하기 위한 디자인 타임 특성을 제공할 수 있습니다. .NET Compact Framework에는 다음을 포함하여 전체 .NET Framework에 제공되는 특성의 하위 집합이 제공됩니다.

참고 항목

기타 리소스

.NET Compact Framework의 상호 운용성