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