ContractHandle Klasa

Definicja

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)

Dotyczy