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 的設計目的是要用於合約對檢視配接器,以協助管線開發人員管理調整合約的存留期。 一般而言,這個類別的實例會在配接器類別的建構期間具現化,並儲存在適配卡的實例欄位中。 當配接器類別被垃圾收集時,也會收集物件, ContractHandle 而且 ContractHandle 物件將會撤銷合約上的存留期令牌。

建議您的檢視對合約配接器繼承自 ContractBase 類別。 然後,您可以針對 的成員 IContract使用預設實作,這表示您只需要實作特定合約的成員。

建構函式

ContractHandle(IContract)

初始化 ContractHandle 類別的新執行個體。

屬性

Contract

取得管線所使用的合約。

方法

AppDomainOwner(AppDomain)

取得建立應用程式定義域時增益集端配接器的執行個體。

ContractOwnsAppDomain(IContract, AppDomain)

判斷應用程式定義域是否由指定的合約所擁有。

Dispose()

不論輸入為何,撤銷合約上的存留期語彙基元。

Dispose(Boolean)

不論輸入為何,撤銷合約上的存留期語彙基元,並選擇性釋放 Managed 資源。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Finalize()

釋出與這個 ContractHandle執行個體相關聯的資源。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於