Partilhar via


ContractHandle Classe

Definição

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)

Aplica-se a