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成員使用預設實作,這表示你只需要實作你特定契約的成員。
建構函式
| 名稱 | Description |
|---|---|
| ContractHandle(IContract) |
初始化 ContractHandle 類別的新執行個體。 |
屬性
| 名稱 | Description |
|---|---|
| Contract |
取得管線使用的合約。 |
方法
| 名稱 | Description |
|---|---|
| AppDomainOwner(AppDomain) |
取得應用程式域建立時的附加介面卡實例。 |
| ContractOwnsAppDomain(IContract, AppDomain) |
判斷應用程式域是否屬於指定合約所有權。 |
| Dispose() |
撤銷合約上的終身代幣,不論輸入為何。 |
| Dispose(Boolean) |
不論輸入如何,撤銷合約上的終身令牌,並可選擇釋放管理資源。 |
| Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
| Finalize() |
釋放與 ContractHandle 實例相關的資源。 |
| GetHashCode() |
做為預設哈希函式。 (繼承來源 Object) |
| GetType() |
取得目前實例的 Type。 (繼承來源 Object) |
| MemberwiseClone() |
建立目前 Object的淺層複本。 (繼承來源 Object) |
| ToString() |
傳回表示目前 物件的字串。 (繼承來源 Object) |