ContractHandle Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece métodos que controlam o tempo de vida de um suplemento.
public ref class ContractHandle : IDisposable
public class ContractHandle : IDisposable
type ContractHandle = class
interface IDisposable
Public Class ContractHandle
Implements IDisposable
- Herança
-
ContractHandle
- Implementações
Exemplos
O exemplo a seguir mostra como definir o identificador de token de tempo de vida em um adaptador de contrato para exibição no lado do suplemento de um pipeline.
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
Comentários
Como o modelo de suplemento fornece a capacidade de os suplementos se comunicarem entre domínios de aplicativo e entre processos, ele não pode contar com o coletor de lixo para recuperá-los. Essa classe fornece um mecanismo de contagem de referência para o suplemento obtendo um token de tempo de vida para seu contrato.
Quando um ContractHandle objeto é construído, ele chama o AcquireLifetimeToken método no contrato que é passado para o construtor. Quando o ContractHandle objeto é descartado ou finalizado, ele chama o RevokeLifetimeToken método no contrato, o que remove sua retenção no contrato.
Os adaptadores implementam o contrato. A ContractHandle classe foi projetada para ser usada em um adaptador de contrato para exibição para ajudar os desenvolvedores de pipeline a gerenciar o tempo de vida do contrato que está sendo adaptado. Normalmente, uma instância dessa classe é instanciada durante a construção da classe de adaptador e é armazenada em um campo de instância do adaptador. Quando a classe do adaptador for coletada por lixo, o ContractHandle objeto também será coletado e o ContractHandle objeto revogará o token de tempo de vida no contrato.
É recomendável que os adaptadores de exibição para contrato herdem da ContractBase classe . Em seguida, você pode usar uma implementação padrão para os membros do IContract, o que significa que você precisa implementar apenas os membros de seu contrato específico.
Construtores
ContractHandle(IContract) |
Inicializa uma nova instância da classe ContractHandle. |
Propriedades
Contract |
Obtém o contrato usado por um pipeline. |
Métodos
AppDomainOwner(AppDomain) |
Obtém a instância do adaptador no lado do suplemento quando o domínio do aplicativo foi criado. |
ContractOwnsAppDomain(IContract, AppDomain) |
Determina se um domínio do aplicativo é de propriedade do contrato especificado. |
Dispose() |
Revoga o token de tempo de vida em um contrato, independentemente da entrada. |
Dispose(Boolean) |
Revoga o token de tempo de vida no contrato, independentemente da entrada e, como opção, libera os recursos gerenciados. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
Finalize() |
Libera todos os recursos associados à instância ContractHandle. |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |