ContractHandle Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 del 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 blocco sul contratto.
Gli adattatori implementano il contratto. La ContractHandle classe è progettata per essere usata in un adattatore da contratto a visualizzazione per consentire agli sviluppatori di pipeline di gestire la durata del contratto che viene adattato. In genere, un'istanza di questa classe viene creata durante la costruzione della classe adapter e viene archiviata in un campo dell'istanza dell'adattatore. Quando la classe adapter viene sottoposta a Garbage Collection, verrà raccolto anche l'oggetto ContractHandle e l'oggetto ContractHandle revocarà 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
ContractHandle(IContract) |
Inizializza una nuova istanza della classe ContractHandle. |
Proprietà
Contract |
Ottiene il contratto utilizzato da una pipeline. |
Metodi
AppDomainOwner(AppDomain) |
Ottiene l'istanza dell'adattatore sul lato del componente aggiuntivo relativa al momento in cui il dominio applicazione è stato creato. |
ContractOwnsAppDomain(IContract, AppDomain) |
Determina se il contratto specificato possiede un dominio applicazione. |
Dispose() |
Revoca il token di durata di un contratto, indipendentemente dall'input. |
Dispose(Boolean) |
Revoca il token di durata del 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 di ContractHandle. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |