Teilen über


ContractHandle Klasse

Definition

Stellt Methoden bereit, die die Lebensdauer eines Add-Ins steuern.

public ref class ContractHandle : IDisposable
public class ContractHandle : IDisposable
type ContractHandle = class
    interface IDisposable
Public Class ContractHandle
Implements IDisposable
Vererbung
ContractHandle
Implementiert

Beispiele

Das folgende Beispiel zeigt, wie das Tokenhandle für die Lebensdauer in einem Contract-to-View-Adapter auf der Add-In-Seite einer Pipeline festgelegt wird.

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

Hinweise

Da das Add-In-Modell die Möglichkeit für Add-Ins bietet, zwischen Anwendungsdomänen und zwischen Prozessen zu kommunizieren, kann es sich nicht auf den Garbage Collector verlassen, um sie freizugeben. Diese Klasse stellt einen Verweiszählungsmechanismus für das Add-In bereit, indem ein Lebensdauertoken für den Vertrag abgerufen wird.

Wenn ein ContractHandle -Objekt erstellt wird, ruft es die AcquireLifetimeToken -Methode für den Vertrag auf, der an den Konstruktor übergeben wird. Wenn das ContractHandle Objekt verworfen oder abgeschlossen ist, ruft es die RevokeLifetimeToken -Methode für den Vertrag auf, wodurch der Halteraum für den Vertrag entfernt wird.

Adapter implementieren den Vertrag. Die ContractHandle -Klasse ist für die Verwendung in einem Contract-to-View-Adapter konzipiert, um Pipelineentwicklern bei der Verwaltung der Lebensdauer des vertrags zu unterstützen, der angepasst wird. In der Regel wird ein instance dieser Klasse während der Erstellung der Adapterklasse instanziiert und in einem instance Feld des Adapters gespeichert. Wenn die Adapterklasse garbage-collection ist, wird auch das ContractHandle Objekt gesammelt, und das ContractHandle Objekt widerruft das Lebensdauertoken für den Vertrag.

Es wird empfohlen, dass Ihre View-to-Contract-Adapter von der ContractBase -Klasse erben. Sie können dann eine Standardimplementierung für die Member von IContractverwenden. Dies bedeutet, dass Sie nur die Member Ihres spezifischen Vertrags implementieren müssen.

Konstruktoren

ContractHandle(IContract)

Initialisiert eine neue Instanz der ContractHandle-Klasse.

Eigenschaften

Contract

Ruft den von einer Pipeline verwendeten Vertrag ab.

Methoden

AppDomainOwner(AppDomain)

Ruft die Instanz des Adapters auf Add-In-Seite bei Erstellung der Anwendungsdomäne ab.

ContractOwnsAppDomain(IContract, AppDomain)

Bestimmt, ob eine Anwendungsdomäne dem angegebenen Vertrag gehört.

Dispose()

Widerruft das Lebensdauertoken für einen Vertrag unabhängig von der Eingabe.

Dispose(Boolean)

Widerruft das Lebensdauertoken für den Vertrag unabhängig von der Eingabe und gibt optional die verwalteten Ressourcen frei.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Finalize()

Gibt die der ContractHandle-Instanz zugeordneten Ressourcen frei.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: