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-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) |