Поделиться через


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)

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