Språk

ContractHandle Klass

Definition

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)

Gäller för