ContractHandle Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Tillhandahåller metoder som styr livslängden för ett tillägg.
public ref class ContractHandle : IDisposable
public class ContractHandle : IDisposable
type ContractHandle = class
interface IDisposable
Public Class ContractHandle
Implements IDisposable
- Arv
-
ContractHandle
- Implementeringar
Exempel
I följande exempel visas hur du anger livslängdstokenreferensen i ett kontrakt-till-visa-kort på tilläggssidan för en pipeline.
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
Kommentarer
Eftersom tilläggsmodellen ger möjlighet för tillägg att kommunicera mellan programdomäner och mellan processer kan den inte förlita sig på att skräpinsamlaren kan frigöra dem. Den här klassen tillhandahåller en referensräkningsmekanism för tillägget genom att hämta en livstidstoken till kontraktet.
När ett ContractHandle objekt skapas anropas AcquireLifetimeToken metoden i kontraktet som skickas till konstruktorn. När objektet ContractHandle tas bort eller slutförs anropas RevokeLifetimeToken metoden i kontraktet, vilket tar bort dess bevarande av kontraktet.
Kort implementerar kontraktet. Klassen ContractHandle är utformad för att användas i ett kontrakt-till-vy-kort för att hjälpa pipelineutvecklare att hantera livslängden för det kontrakt som anpassas. Normalt instans av den här klassen instansieras under konstruktionen av adapterklassen och lagras i ett instansfält i adaptern. När adapterklassen är skräpinsamlad samlas även ContractHandle objektet in och ContractHandle objektet återkallar livslängdstoken för kontraktet.
Vi rekommenderar att dina visa-till-kontrakt-kort ärver från ContractBase klassen. Du kan sedan använda en standardimplementering för medlemmarna IContracti , vilket innebär att du bara behöver implementera medlemmarna i ditt specifika kontrakt.
Konstruktorer
| Name | Description |
|---|---|
| ContractHandle(IContract) |
Initierar en ny instans av ContractHandle klassen. |
Egenskaper
| Name | Description |
|---|---|
| Contract |
Hämtar kontraktet som används av en pipeline. |
Metoder
| Name | Description |
|---|---|
| AppDomainOwner(AppDomain) |
Hämtar instansen av tilläggskortet när programdomänen skapades. |
| ContractOwnsAppDomain(IContract, AppDomain) |
Avgör om en programdomän ägs av det angivna kontraktet. |
| Dispose() |
Återkallar livslängdstoken för ett kontrakt, oavsett indata. |
| Dispose(Boolean) |
Återkallar livslängdstoken för kontraktet oavsett indata och släpper eventuellt de hanterade resurserna. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| Finalize() |
Frigör de resurser som är associerade med instansen ContractHandle . |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |