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 adapterze 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 umożliwia dodatki do komunikowania się między domenami aplikacji i między procesami, nie może polegać na modułu odśmiecania pamięci w celu ich odzyskania. Ta klasa udostępnia mechanizm zliczania odwołań dla dodatku, uzyskując token okresu istnienia do kontraktu.
Gdy ContractHandle obiekt jest skonstruowany, wywołuje metodę AcquireLifetimeToken w kontrakcie przekazywanym do konstruktora. ContractHandle Gdy obiekt zostanie usunięty lub sfinalizowany, wywołuje RevokeLifetimeToken metodę kontraktu, która usuwa jego blokadę w kontrakcie.
Adaptery implementują kontrakt. Klasa ContractHandle została zaprojektowana tak, aby była używana w adapterze contract-to-view, 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. Gdy klasa adaptera jest zbierana na śmieci, obiekt zostanie również zebrany, ContractHandle a ContractHandle obiekt odwoła token okresu istnienia kontraktu.
Zaleca się, aby karty widok-kontrakt dziedziczyły z ContractBase klasy . Następnie można użyć domyślnej implementacji dla członków programu IContract, co oznacza, że musisz zaimplementować tylko członków określonej umowy.
Konstruktory
| Nazwa | Opis |
|---|---|
| ContractHandle(IContract) |
Inicjuje nowe wystąpienie klasy ContractHandle. |
Właściwości
| Nazwa | Opis |
|---|---|
| Contract |
Pobiera kontrakt używany przez potok. |
Metody
| Nazwa | Opis |
|---|---|
| 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 określony obiekt jest równy bieżącemu obiektowi. (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() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
| MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
| ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |