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으로 변경됩니다.

참고 항목