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-zobrazení 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 umožňuje doplňkům komunikovat mezi doménami aplikací a mezi procesy, nemůže se spoléhat na uvolňování paměti a uvolnit je. Tato třída poskytuje mechanismus počítání odkazů pro doplněk získáním tokenu životnosti k jeho kontraktu.

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

Adaptéry implementují kontrakt. Třída ContractHandle je navržená tak, aby se používala v adaptéru pro kontrakt-zobrazení, který vývojářům 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. Při uvolňování paměti třídy adaptéru ContractHandle se objekt také shromažďuje a ContractHandle objekt odvolá token životnosti kontraktu.

Doporučujeme, aby adaptéry zobrazení na kontrakt dědily z ContractBase třídy. Pak můžete použít výchozí implementaci pro členy IContract, což znamená, že potřebujete implementovat pouze členy konkrétní smlouvy.

Konstruktory

Name Description
ContractHandle(IContract)

Inicializuje novou instanci ContractHandle třídy.

Vlastnosti

Name Description
Contract

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

Metody

Name Description
AppDomainOwner(AppDomain)

Získá instanci adaptéru doplňku na straně 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 kontraktu bez ohledu na vstup.

Dispose(Boolean)

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

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

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

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

GetHashCode()

Slouží jako výchozí funkce hash.

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

Získá Type aktuální instance.

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

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

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

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

(Zděděno od Object)

Platí pro