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) |