추가 기능 활성화

검색 메서드를 사용하여 지정된 호스트 뷰에 대한 추가 기능 토큰 컬렉션을 가져온 후에는 AddInToken 개체로 표현되는 해당 토큰을 사용하여 컬렉션에서 추가 기능을 활성화할 수 있습니다. 시스템에서 사용할 수 있는 추가 기능을 검색하는 방법에 대한 자세한 내용은 추가 기능 검색을 참조하십시오.

AddInToken 개체에 대해 Activate 메서드 오버로드를 사용하면 다음과 같은 활성화 옵션을 지정할 수 있습니다.

  • 추가 기능이 로드되는 응용 프로그램 도메인

  • 추가 기능에 대해 만들어지는 응용 프로그램 도메인에 할당되는 보안 신뢰 수준 또는 권한

  • 추가 기능을 활성화하는 외부 프로세스. 이 옵션은 고급 추가 기능 개발 옵션입니다.

Activate 메서드는 추가 기능의 호스트 뷰를 반환합니다. 그러면 호스트 응용 프로그램에서 계약에 정의된 대로 메서드를 호출할 수 있습니다. 호스트 응용 프로그램에서는 AddInController 클래스를 사용하여 종료함으로써 추가 기능의 수명을 제어할 수 있습니다. 또한 더 이상 참조하지 않는 추가 기능을 가비지 수집기를 통해 회수할 수도 있습니다.

활성화

일반적으로 호스트 응용 프로그램은 호스트와 추가 기능이 별도의 응용 프로그램 도메인(추가 기능당 하나씩)에서 실행되도록 합니다. 이를 통해 추가 기능이 호스트는 물론 다른 추가 기능과도 격리된 컨텍스트에서 작동하도록 할 수 있습니다. 이러한 격리 환경은 충돌이 발생하지 않도록 하고 추가 기능의 버전 관리를 가능하게 해 줍니다.

추가 기능이 고유한 응용 프로그램 도메인에 있기 때문에 이를 고유한 환경에서 테스트할 수 있을 뿐 아니라 파이프라인의 어느 한쪽을 테스트할 수도 있습니다. 추가 기능 어댑터, 계약 및 추가 기능 뷰 파이프라인 세그먼트는 동일한 응용 프로그램 도메인에 추가 기능으로 로드됩니다. 추가 기능에서 필요로 하는 다른 모든 어셈블리도 추가 기능의 응용 프로그램 도메인으로 로드됩니다.

추가 기능을 활성화하는 경우 호스트 응용 프로그램에서는 대개 지정된 보안 수준을 사용하고 추가 기능에 대해 응용 프로그램 도메인을 자동으로 만드는 Activate 메서드 오버로드를 사용합니다. 보안 수준에 대해서는 AddInSecurityLevel 또는 PermissionSet을 지정할 수 있습니다. Activate 메서드는 추가 기능에 대한 응용 프로그램 도메인을 만들 때 응용 프로그램 도메인의 구성 파일을 addinassemblyname.config(있는 경우)로 설정합니다.

더 세밀하게 제어하거나 추가 기능을 풀링하려면 AddInToken.Activate 메서드의 오버로드를 사용하여 추가 기능을 로드할 기존 응용 프로그램 도메인을 지정하면 됩니다. 기존 응용 프로그램 도메인을 지정하는 경우 리소스, 보안 컨텍스트 및 문화권 정보를 다른 추가 기능과 손쉽게 공유할 수 있습니다.

추가 기능의 응용 프로그램 도메인에 적용될 보안 컨텍스트에 대해 고려해야 합니다. 예를 들어, 호스트 응용 프로그램은 완전 신뢰로 실행될 수 있지만 추가 기능을 더 적은 권한으로 실행해야 할 수도 있습니다. Activate 메서드의 오버로드를 사용하면 AddInSecurityLevel 열거형으로 보안 영역을 지정할 수 있습니다. 이러한 보안 영역에는 FullTrust, Host, Intranet 또는 Internet이 있습니다. 보안 영역의 해당 권한은 응용 프로그램 도메인에서 실행되는 코드에 적용됩니다. 이러한 보안 영역에 사용할 수 있는 권한은 기존 .NET Framework 보안 설정에 따라 달라집니다.

보안 영역에 권한을 사용하지 않는 경우 Activate 메서드의 오버로드를 사용하여 고유한 PermissionSet 개체를 제공할 수도 있습니다.

Activate 메서드의 오버로드를 사용하면 추가 기능에 대한 외부 프로세스를 만들거나 추가 기능을 호스팅하기 위해 만든 기존 외부 프로세스에 추가 기능을 연결할 수 있습니다. 이러한 오버로드에서는 AddInProcessAddInEnvironment 클래스를 사용합니다. 외부 프로세스에서 추가 기능을 활성화하는 방법에 대한 자세한 내용은 방법: 다양한 격리 및 보안 수준으로 추가 기능 활성화를 참조하십시오.

추가 기능 수명 제어

AddInController 클래스에서는 다음과 같은 추가 기능 작업을 위한 메서드를 제공합니다.

  • 추가 기능을 종료합니다.

  • 추가 기능의 응용 프로그램 도메인을 가져옵니다.

  • 나중에 활성화할 추가 기능의 토큰을 가져옵니다.

  • 외부 프로세스 활성화에 사용할 AddInEnvironment 개체를 가져옵니다.

GetAddInController 메서드를 사용하여 지정된 추가 기능에 대한 컨트롤러를 가져옵니다.

Shutdown 메서드는 추가 기능을 종료하는 데 필요한 세부 사항을 처리합니다. 여기에는 추가 기능이 로드되는 위치, 해당 응용 프로그램 도메인, 추가 기능이 실행되는 외부 프로세스 등을 인식하는 것이 포함됩니다. 응용 프로그램 도메인이 자동으로 만들어진 경우 이 메서드는 해당 응용 프로그램 도메인을 언로드합니다. 추가 기능이 지정된 응용 프로그램 도메인에서 활성화된 경우 원격 계약 개체의 수명 서비스가 시간이 초과되어 응용 프로그램 도메인은 로드된 상태를 유지합니다. 계약 개체가 삭제되면 가비지 수집을 통해 추가 기능을 회수할 수 있게 됩니다.

예제

다음 예제에서는 자동으로 만들어진 응용 프로그램 도메인에서 지정된 보안 수준으로 추가 기능을 활성화합니다.

'Ask the user which add-in they would like to use.
Dim selectedToken As AddInToken = ChooseAddIn(tokens)
'Activate the selected AddInToken in a new
'application domain with the Internet trust level.
Dim CalcAddIn As Calculator = selectedToken.Activate(Of Calculator)(AddInSecurityLevel.Internet)
'Run the add-in using a custom method.
RunCalculator(CalcAddIn)
//Ask the user which add-in they would like to use.
AddInToken selectedToken = ChooseAddIn(tokens);

//Activate the selected AddInToken in a new
//application domain with the Internet trust level.
Calculator CalcAddIn = selectedToken.Activate<Calculator>(AddInSecurityLevel.Internet);

//Run the add-in using a custom method.
RunCalculator(CalcAddIn);

참고 항목

작업

방법: 다양한 격리 및 보안 수준으로 추가 기능 활성화

개념

추가 기능 및 확장성

추가 기능 검색

수명 관리

계약, 뷰 및 어댑터