次の方法で共有


ContractHandle クラス

定義

アドインの有効期間を制御するメソッドを提供します。

public ref class ContractHandle : IDisposable
public class ContractHandle : IDisposable
type ContractHandle = class
    interface IDisposable
Public Class ContractHandle
Implements IDisposable
継承
ContractHandle
実装

次の例は、パイプラインのアドイン側のコントラクトからビューへのアダプターで有効期間トークン ハンドルを設定する方法を示しています。

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

注釈

アドイン モデルは、アプリケーション ドメイン間およびプロセス間でアドインが通信する機能を提供するため、ガベージ コレクターを利用してそれらを再利用することはできません。 このクラスは、コントラクトへの有効期間トークンを取得することによって、アドインの参照カウント メカニズムを提供します。

オブジェクトが ContractHandle 構築されると、コンストラクターに渡されるコントラクトで メソッドが呼び出 AcquireLifetimeToken されます。 オブジェクトが ContractHandle 破棄または最終処理されると、コントラクトで メソッドが RevokeLifetimeToken 呼び出され、コントラクトの保留が削除されます。

アダプターはコントラクトを実装します。 クラスは ContractHandle 、パイプライン開発者が調整中のコントラクトの有効期間を管理するのに役立つ、コントラクトからビューへのアダプターで使用するように設計されています。 通常、このクラスのインスタンスはアダプター クラスの構築中にインスタンス化され、アダプターのインスタンス フィールドに格納されます。 アダプター クラスがガベージ コレクションされると、オブジェクトも収集され、ContractHandleContractHandleオブジェクトはコントラクトの有効期間トークンを取り消します。

ビューからコントラクトへのアダプターは、 クラスから ContractBase 継承することをお勧めします。 その後、 のメンバーに既定の IContract実装を使用できます。つまり、特定のコントラクトのメンバーのみを実装する必要があります。

コンストラクター

ContractHandle(IContract)

ContractHandle クラスの新しいインスタンスを初期化します。

プロパティ

Contract

パイプラインで使用されるコントラクトを取得します。

メソッド

AppDomainOwner(AppDomain)

アプリケーション ドメインが作成されたときに、アドイン側アダプターのインスタンスを取得します。

ContractOwnsAppDomain(IContract, AppDomain)

アプリケーション ドメインが指定したコントラクトによって所有されているかどうかを確認します。

Dispose()

入力に関係なく、コントラクトの有効期間トークンを破棄します。

Dispose(Boolean)

入力に関係なくコントラクトの有効期間トークンを破棄し、オプションでマネージド リソースを解放します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Finalize()

ContractHandle インスタンスと関連付けられたリソースを解放します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象