ContractHandle Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Udostępnia metody kontrolujące okres istnienia dodatku.
public ref class ContractHandle : IDisposable
public class ContractHandle : IDisposable
type ContractHandle = class
interface IDisposable
Public Class ContractHandle
Implements IDisposable
- Dziedziczenie
-
ContractHandle
- Implementuje
Przykłady
W poniższym przykładzie pokazano, jak ustawić uchwyt tokenu okresu istnienia w karcie typu contract-to-view po stronie dodatku potoku.
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
Uwagi
Ponieważ model dodatku zapewnia możliwość komunikowania się dodatków między domenami aplikacji i między procesami, nie może polegać na modułze odśmiecania pamięci w celu ich odzyskania. Ta klasa zapewnia mechanizm zliczania odwołań dla dodatku przez uzyskanie tokenu okresu istnienia do jego kontraktu.
ContractHandle Gdy obiekt jest skonstruowany, wywołuje metodę AcquireLifetimeToken kontraktu przekazanego do konstruktora. ContractHandle Gdy obiekt zostanie usunięty lub sfinalizowany, wywołuje RevokeLifetimeToken metodę kontraktu, która usuwa blokadę kontraktu.
Karty implementują kontrakt. Klasa ContractHandle została zaprojektowana tak, aby była używana w adapterze z umową do wyświetlania, aby ułatwić deweloperom potoków zarządzanie okresem istnienia kontraktu, który jest dostosowywany. Zazwyczaj wystąpienie tej klasy jest tworzone podczas budowy klasy adaptera i jest przechowywane w polu wystąpienia adaptera. Po zebraniu pamięci klasy adaptera ContractHandle obiekt zostanie również zebrany, a ContractHandle obiekt odwoła token okresu istnienia kontraktu.
Zaleca się, aby karty widoku do kontraktu ContractBase dziedziczyły z klasy. Następnie można użyć domyślnej implementacji dla elementów członkowskich programu IContract, co oznacza, że musisz zaimplementować tylko członków określonego kontraktu.
Konstruktory
ContractHandle(IContract) |
Inicjuje nowe wystąpienie klasy ContractHandle. |
Właściwości
Contract |
Pobiera kontrakt używany przez potok. |
Metody
AppDomainOwner(AppDomain) |
Pobiera wystąpienie karty dodatku po utworzeniu domeny aplikacji. |
ContractOwnsAppDomain(IContract, AppDomain) |
Określa, czy domena aplikacji jest własnością określonego kontraktu. |
Dispose() |
Odwołuje token okresu istnienia kontraktu, niezależnie od danych wejściowych. |
Dispose(Boolean) |
Odwołuje token okresu istnienia kontraktu niezależnie od danych wejściowych i opcjonalnie zwalnia zarządzane zasoby. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
Finalize() |
Zwalnia zasoby skojarzone z wystąpieniem ContractHandle . |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |