ContractHandle Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Fornece métodos que controlam a vida útil de um complemento.
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 seguinte mostra como definir a alavanca do token de tempo de vida num adaptador contrato-para-visualização no lado adicional 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
Observações
Como o modelo de add-in permite que os add-ins comuniquem entre domínios de aplicação e processos, não pode depender do garbage collector para os recuperar. Esta classe fornece um mecanismo de contagem de referências para o add-in, obtendo um token vitalício no seu contrato.
Quando um ContractHandle objeto é construído, chama o AcquireLifetimeToken método do contrato que é passado ao construtor. Quando o ContractHandle objeto é descartado ou finalizado, chama o RevokeLifetimeToken método no contrato, que remove o seu domínio sobre o contrato.
Os adaptadores implementam o contrato. A ContractHandle classe foi concebida para ser usada num adaptador de contrato para visualização, ajudando os programadores de pipelines a gerir a vida útil do contrato que está a ser adaptado. Normalmente, uma instância desta classe é instanciada durante a construção da classe do adaptador e é armazenada num campo de instância do adaptador. Quando a classe adaptadora é recolhida pelo lixo, o ContractHandle objeto também será recolhido e ContractHandle o objeto revogará o token de vida no contrato.
Recomenda-se que os seus adaptadores view-to-contract herdem da ContractBase classe. Pode então usar uma implementação padrão para os membros de IContract, o que significa que precisa de implementar apenas os membros do seu contrato específico.
Construtores
| Name | Description |
|---|---|
| ContractHandle(IContract) |
Inicializa uma nova instância da ContractHandle classe. |
Propriedades
| Name | Description |
|---|---|
| Contract |
Assim o contrato é usado por um oleoduto. |
Métodos
| Name | Description |
|---|---|
| AppDomainOwner(AppDomain) |
Obtém a instância do adaptador do lado adicional quando o domínio da aplicação foi criado. |
| ContractOwnsAppDomain(IContract, AppDomain) |
Determina se um domínio de aplicação pertence ao contrato especificado. |
| Dispose() |
Revoga o token vitalício de um contrato, independentemente da entrada. |
| Dispose(Boolean) |
Revoga o token vitalício do contrato independentemente da entrada e, opcionalmente, liberta os recursos geridos. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| Finalize() |
Liberta os recursos associados à ContractHandle instância. |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |