ContractHandle Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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) |