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