ContractHandle Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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) |