ContractHandle Classe

Definizione

Fornisce metodi che controllano la durata di un componente aggiuntivo.

public ref class ContractHandle : IDisposable
public class ContractHandle : IDisposable
type ContractHandle = class
    interface IDisposable
Public Class ContractHandle
Implements IDisposable
Ereditarietà
ContractHandle
Implementazioni

Esempio

Nell'esempio seguente viene illustrato come impostare l'handle di token di durata in un adattatore da contratto a visualizzazione sul lato componente aggiuntivo di una 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

Commenti

Poiché il modello di componente aggiuntivo consente ai componenti aggiuntivi di comunicare tra domini applicazione e tra processi, non può basarsi sul Garbage Collector per recuperarli. Questa classe fornisce un meccanismo di conteggio dei riferimenti per il componente aggiuntivo ottenendo un token di durata al contratto.

Quando viene costruito un ContractHandle oggetto, chiama il AcquireLifetimeToken metodo sul contratto passato al costruttore. Quando l'oggetto ContractHandle viene eliminato o finalizzato, chiama il RevokeLifetimeToken metodo sul contratto, che rimuove il relativo blocco sul contratto.

Gli adattatori implementano il contratto. La ContractHandle classe è progettata per essere usata in un adattatore da contratto a visualizzazione per aiutare gli sviluppatori di pipeline a gestire la durata del contratto che viene adattato. In genere, un'istanza di questa classe viene creata un'istanza durante la costruzione della classe adapter e viene archiviata in un campo di istanza dell'adattatore. Quando la classe adapter viene sottoposta a Garbage Collection, l'oggetto ContractHandle verrà raccolto e l'oggetto ContractHandle revoca il token di durata nel contratto.

È consigliabile che gli adattatori da visualizzazione a contratto ereditino dalla ContractBase classe . È quindi possibile usare un'implementazione predefinita per i membri di IContract, il che significa che è necessario implementare solo i membri del contratto specifico.

Costruttori

Nome Descrizione
ContractHandle(IContract)

Inizializza una nuova istanza della classe ContractHandle.

Proprietà

Nome Descrizione
Contract

Ottiene il contratto utilizzato da una pipeline.

Metodi

Nome Descrizione
AppDomainOwner(AppDomain)

Ottiene l'istanza dell'adattatore sul lato componente aggiuntivo al momento della creazione del dominio applicazione.

ContractOwnsAppDomain(IContract, AppDomain)

Determina se un dominio applicazione è di proprietà del contratto specificato.

Dispose()

Revoca il token di durata in un contratto, indipendentemente dall'input.

Dispose(Boolean)

Revoca il token di durata nel contratto indipendentemente dall'input e, facoltativamente, rilascia le risorse gestite.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Finalize()

Rilascia le risorse associate all'istanza ContractHandle di .

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a