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 a contrato herdem da ContractBase classe. Em seguida, você pode usar uma implementação padrão para os membros, IContracto 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