ContractHandle Třída

Definice

Poskytuje metody, které řídí životnost doplňku.

public ref class ContractHandle : IDisposable
public class ContractHandle : IDisposable
type ContractHandle = class
    interface IDisposable
Public Class ContractHandle
Implements IDisposable
Dědičnost
ContractHandle
Implementuje

Příklady

Následující příklad ukazuje, jak nastavit popisovač tokenu životnosti v adaptéru kontrakt-to-view na straně doplňku kanálu.

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

Poznámky

Vzhledem k tomu, že model doplňku poskytuje možnost komunikovat mezi doménami aplikace a mezi procesy, nemůže spoléhat na uvolňování paměti, aby je získal zpět. Tato třída poskytuje mechanismus počítání odkazů pro doplněk získáním tokenu životnosti do jeho kontraktu.

Při vytváření objektu ContractHandle volá metodu AcquireLifetimeToken v kontraktu, která je předána konstruktoru. ContractHandle Když je objekt odstraněn nebo finalizován, volá metodu RevokeLifetimeToken v kontraktu, která odebere jeho blokování na kontraktu.

Adaptéry implementují kontrakt. Třída ContractHandle je navržená tak, aby byla použita v adaptéru kontrakt-to-view, který vývojářům kanálu pomáhá spravovat životnost kontraktu, který se upravuje. Instance této třídy je obvykle vytvořena během vytváření třídy adaptéru a je uložena v poli instance adaptéru. Když je třída adaptéru uvolněna, ContractHandle objekt bude také shromážděn a ContractHandle objekt odvolá token životnosti v kontraktu.

Doporučuje se, aby adaptéry zobrazení k kontraktu dědily ContractBase z třídy . Pak můžete použít výchozí implementaci pro členy nástroje IContract, což znamená, že musíte implementovat pouze členy konkrétního kontraktu.

Konstruktory

ContractHandle(IContract)

Inicializuje novou instanci ContractHandle třídy.

Vlastnosti

Contract

Získá kontrakt používaný kanálem.

Metody

AppDomainOwner(AppDomain)

Získá instanci doplňku adaptéru při vytvoření domény aplikace.

ContractOwnsAppDomain(IContract, AppDomain)

Určuje, zda je doména aplikace vlastněna zadaným kontraktem.

Dispose()

Odvolá token životnosti u kontraktu bez ohledu na vstup.

Dispose(Boolean)

Odvolá token životnosti kontraktu bez ohledu na vstup a volitelně uvolní spravované prostředky.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
Finalize()

Uvolní prostředky přidružené k ContractHandle instanci.

GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro