ContractHandle Classe

Definizione

Fornisce metodi che controllano la durata di un componente aggiuntivo.Provides methods that control the lifetime of an add-in.

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

Esempi

Nell'esempio seguente viene illustrato come impostare l'handle del token di durata in un adapter contract-to-View sul lato componente aggiuntivo di una pipeline.The following example shows how to set the lifetime token handle in a contract-to-view adapter on the add-in side of a 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 offre la possibilità per i componenti aggiuntivi di comunicare tra domini applicazione e tra i processi, non è possibile basarsi sulla Garbage Collector per recuperarli.Because the add-in model provides the ability for add-ins to communicate between application domains and between processes, it cannot rely on the garbage collector to reclaim them. Questa classe fornisce un meccanismo di conteggio dei riferimenti per il componente aggiuntivo ottenendo un token di durata per il relativo contratto.This class provides a reference counting mechanism for the add-in by obtaining a lifetime token to its contract.

Quando un ContractHandle oggetto viene costruito, viene chiamato il AcquireLifetimeToken metodo sul contratto passato al costruttore.When a ContractHandle object is constructed, it calls the AcquireLifetimeToken method on the contract that is passed to the constructor. Quando l' ContractHandle oggetto viene eliminato o finalizzato, viene chiamato il RevokeLifetimeToken metodo sul contratto, che rimuove la relativa attesa sul contratto.When the ContractHandle object is disposed or finalized, it calls the RevokeLifetimeToken method on the contract, which removes its hold on the contract.

Gli adapter implementano il contratto.Adapters implement the contract. La ContractHandle classe è progettata per essere utilizzata in un adapter da contratto a visualizzazione per aiutare gli sviluppatori della pipeline a gestire la durata del contratto che si sta adattando.The ContractHandle class is designed to be used in a contract-to-view adapter to help pipeline developers manage the lifetime of the contract that is being adapted. In genere, un'istanza di questa classe viene creata durante la costruzione della classe Adapter e viene archiviata in un campo di istanza dell'adapter.Typically, an instance of this class is instantiated during the construction of the adapter class and is stored in an instance field of the adapter. Quando la classe dell'adapter viene sottoposta a ContractHandle Garbage Collection, l'oggetto viene anche ContractHandle raccolto e l'oggetto revoca il token di durata nel contratto.When the adapter class is garbage-collected, the ContractHandle object will also be collected and the ContractHandle object will revoke the lifetime token on the contract.

È consigliabile che gli adapter di visualizzazione-contratto ereditino dalla ContractBase classe.It is recommended that your view-to-contract adapters inherit from the ContractBase class. È quindi possibile usare un'implementazione predefinita per i membri di IContract, il che significa che è necessario implementare solo i membri del contratto specifico.You can then use a default implementation for the members of IContract, which means you need to implement only the members of your specific contract.

Costruttori

ContractHandle(IContract)

Inizializza una nuova istanza della classe ContractHandle.Initializes a new instance of the ContractHandle class.

Proprietà

Contract

Ottiene il contratto utilizzato da una pipeline.Gets the contract used by a pipeline.

Metodi

AppDomainOwner(AppDomain)

Ottiene l'istanza dell'adattatore sul lato del componente aggiuntivo relativa al momento in cui il dominio applicazione è stato creato.Gets the instance of the add-in-side adapter when the application domain was created.

ContractOwnsAppDomain(IContract, AppDomain)

Determina se il contratto specificato possiede un dominio applicazione.Determines whether an application domain is owned by the specified contract.

Dispose()

Revoca il token di durata di un contratto, indipendentemente dall'input.Revokes the lifetime token on a contract, regardless of input.

Dispose(Boolean)

Revoca il token di durata del contratto indipendentemente dall'input e, facoltativamente, rilascia le risorse gestite.Revokes the lifetime token on the contract regardless of input and optionally releases the managed resources.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
Finalize()

Rilascia le risorse associate all'istanza di ContractHandle.Releases the resources associated with the ContractHandle instance.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Si applica a