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)

Применяется к