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)