ContractHandle ContractHandle ContractHandle ContractHandle Class


추가 기능의 수명을 제어하는 메서드를 제공합니다.Provides methods that control the lifetime of an add-in.

public ref class ContractHandle : IDisposable
public class ContractHandle : IDisposable
type ContractHandle = class
    interface IDisposable
Public Class ContractHandle
Implements IDisposable


다음 예제에서는 파이프라인의 추가 기능 쪽 계약-뷰 어댑터의 수명 토큰 핸들을 설정 하는 방법을 보여 줍니다.The following example shows how to set the lifetime token handle in a contract-to-view adapter on the add-in side of a pipeline.

private CalculatorContracts.ICalc2Contract _contract;

private System.AddIn.Pipeline.ContractHandle _handle;

public CalculatorContractToViewHostAdapter(ICalc2Contract contract) {
    _contract = contract;
    _handle = new System.AddIn.Pipeline.ContractHandle(contract);
Private _contract As ICalc2Contract
Private _handle As ContractHandle

Public Sub New(ByVal contract As ICalc2Contract)
    _contract = contract
    _handle = New ContractHandle(contract)
End Sub


추가 기능 모델은 추가 기능 애플리케이션 도메인 간에 및 프로세스 간 통신에 기능을 제공 하므로를 회수 가비지 수집기에 사용할 수 없습니다.Because the add-in model provides the ability for add-ins to communicate between application domains and between processes, it cannot rely on the garbage collector to reclaim them. 이 클래스는 해당 계약 수명 토큰을 가져오면 추가 기능에 대 한 메커니즘을 계산 하는 참조를 제공 합니다.This class provides a reference counting mechanism for the add-in by obtaining a lifetime token to its contract.

경우는 ContractHandle 개체가 생성 되 면 호출를 AcquireLifetimeToken 메서드를 생성자에 전달 되는 계약입니다.When a ContractHandle object is constructed, it calls the AcquireLifetimeToken method on the contract that is passed to the constructor. 경우는 ContractHandle 호출, 개체를 삭제 하거나 종료는 RevokeLifetimeToken 계약에 대해 보유를 제거 하는 계약 메서드.When the ContractHandle object is disposed or finalized, it calls the RevokeLifetimeToken method on the contract, which removes its hold on the contract.

어댑터는 계약을 구현 합니다.Adapters implement the contract. ContractHandle 파이프라인 개발자가 적용 되는 계약의 수명을 관리 하는 데 사용할 계약-뷰 어댑터에서 클래스는 설계 되었습니다.The ContractHandle class is designed to be used in a contract-to-view adapter to help pipeline developers manage the lifetime of the contract that is being adapted. 일반적으로이 클래스의 인스턴스는 어댑터 클래스를 생성 하는 동안 인스턴스화되고 어댑터의 인스턴스 필드에 저장 됩니다.Typically, an instance of this class is instantiated during the construction of the adapter class and is stored in an instance field of the adapter. 어댑터 클래스는 가비지가 수집 하는 경우는 ContractHandle 개체도 수집 되 고 ContractHandle 개체에는 계약의 수명 토큰을 철회 됩니다.When the adapter class is garbage-collected, the ContractHandle object will also be collected and the ContractHandle object will revoke the lifetime token on the contract.

보기-계약 어댑터에서 상속 되도록 하는 것이 좋습니다는 ContractBase 클래스입니다.It is recommended that your view-to-contract adapters inherit from the ContractBase class. 멤버에 대 한 기본 구현을 사용할 수 있습니다 IContract, 즉, 특정 계약을 멤버를 구현 해야 합니다.You can then use a default implementation for the members of IContract, which means you need to implement only the members of your specific contract.


ContractHandle(IContract) ContractHandle(IContract) ContractHandle(IContract) ContractHandle(IContract)

ContractHandle 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ContractHandle class.


Contract Contract Contract Contract

파이프라인에서 사용되는 계약을 가져옵니다.Gets the contract used by a pipeline.


AppDomainOwner(AppDomain) AppDomainOwner(AppDomain) AppDomainOwner(AppDomain) AppDomainOwner(AppDomain)

애플리케이션 도메인이 생성되었을 때 추가 기능 쪽 어댑터의 인스턴스를 가져옵니다.Gets the instance of the add-in-side adapter when the application domain was created.

ContractOwnsAppDomain(IContract, AppDomain) ContractOwnsAppDomain(IContract, AppDomain) ContractOwnsAppDomain(IContract, AppDomain) ContractOwnsAppDomain(IContract, AppDomain)

지정된 계약에서 애플리케이션 도메인을 소유하는지 확인합니다.Determines whether an application domain is owned by the specified contract.

Dispose() Dispose() Dispose() Dispose()

입력 값에 관계없이 계약의 수명 토큰을 해지합니다.Revokes the lifetime token on a contract, regardless of input.

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

입력 값에 관계없이 계약의 수명 토큰을 해지하고, 선택적으로 관리되는 리소스를 해제합니다.Revokes the lifetime token on the contract regardless of input and optionally releases the managed resources.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(Inherited from Object)
Finalize() Finalize() Finalize() Finalize()

ContractHandle 인스턴스와 연결된 리소스를 해제합니다.Releases the resources associated with the ContractHandle instance.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(Inherited from Object)

적용 대상