ContractHandle クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
アドインの有効期間を制御するメソッドを提供します。
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 クラスは、パイプライン開発者が適応中のコントラクトの有効期間を管理できるように、コントラクトからビューへのアダプターで使用するように設計されています。 通常、このクラスのインスタンスはアダプター クラスの構築中にインスタンス化され、アダプターのインスタンス フィールドに格納されます。 アダプター クラスがガベージ コレクションされると、 ContractHandle オブジェクトも収集され、 ContractHandle オブジェクトはコントラクトの有効期間トークンを取り消します。
ビューからコントラクトへのアダプターは、 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) |