Windows Form에서 ActiveX 컨트롤을 호스팅할 때 고려 사항

Windows Forms은 Windows Forms 컨트롤을 호스팅하기에 최적화되어 있지만 ActiveX 컨트롤을 사용할 수도 있습니다. 다음은 ActiveX 컨트롤을 사용하는 응용 프로그램을 작성할 때 유의해야 할 사항입니다.

  • 보안   공용 언어 런타임이 코드 액세스 보안 측면에서 강화되었습니다. Windows Forms 기능이 있는 응용 프로그램은 문제 없이 완전히 신뢰할 수 있는 환경에서 실행할 수 있고 대부분의 기능에 액세스할 수 있는 부분적으로 신뢰할 수 있는 환경에서도 실행할 수 있습니다. Windows Forms 컨트롤은 브라우저에서 아무 문제 없이 호스팅될 수 있지만 Windows Forms의 ActiveX 컨트롤은 이러한 향상된 보안 기능을 활용할 수 없습니다. ActiveX 컨트롤을 실행하려면 SecurityPermissionAttribute.UnmanagedCode 속성으로 설정하는 비관리 코드 권한이 필요합니다. 보안 및 비관리 코드 권한에 대한 자세한 내용은 SecurityPermissionAttribute 클래스를 참조하십시오.

  • TCO(전체 소유 비용)   Windows Form에 추가된 ActiveX 컨트롤은 Windows Form과 함께 전부 배포되므로 파일의 크기가 상당히 커질 수 있습니다. 또한 Windows Forms에서 ActiveX 컨트롤을 사용하려면 레지스트리에 기록해야 합니다. 따라서 레지스트리에 기록할 필요가 없는 Windows Forms 컨트롤을 사용하는 것에 비해 사용자의 컴퓨터를 간섭할 여지가 많습니다.

    참고

    ActiveX 컨트롤로 작업하려면 COM Interop 래퍼를 사용해야 합니다. 자세한 내용은 Visual Basic 및 Visual C#에서 COM 상호 운용성을 참조하십시오.

    참고

    ActiveX 컨트롤 멤버의 이름이 .NET Framework에 정의된 이름과 일치하면 ActiveX 컨트롤 가져오기는 AxHost 파생 클래스를 만들 때 멤버 이름 앞에 Ctl을 붙입니다. 예를 들어 ActiveX 컨트롤의 Layout이라는 멤버는 .NET Framework 내에 Layout 이벤트가 정의되어 있는 경우 해당 멤버의 이름이 AxHost 파생 클래스에서 CtlLayout으로 변경됩니다.

참고 항목

작업

방법: Windows Forms에 ActiveX 컨트롤 추가

참조

여러 언어 및 라이브러리에서 사용되는 컨트롤 및 프로그래밍 가능한 개체 비교

개념

코드 액세스 보안

기타 리소스

Windows Forms에 컨트롤 넣기

Windows Forms 컨트롤