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)

对协定调用生存期标记(无论输入什么内容)并可以选择释放托管资源。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
Finalize()

释放与 ContractHandle 实例关联的资源。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于