ContractHandle Sınıf

Tanım

Bir eklentinin ömrünü denetleyebilen yöntemler sağlar.

public ref class ContractHandle : IDisposable
public class ContractHandle : IDisposable
type ContractHandle = class
    interface IDisposable
Public Class ContractHandle
Implements IDisposable
Devralma
ContractHandle
Uygulamalar

Örnekler

Aşağıdaki örnekte, işlem hattının eklenti tarafındaki sözleşmeden görünüme bağdaştırıcısında yaşam süresi belirteci tanıtıcısının nasıl ayarlanacağı gösterilmektedir.

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

Açıklamalar

Eklenti modeli, eklentilerin uygulama etki alanları ve işlemler arasında iletişim kurmasına olanak sağladığından, bunları geri kazanmak için çöp toplayıcıya güvenemez. Bu sınıf, sözleşmesi için bir yaşam süresi belirteci alarak eklenti için bir başvuru sayma mekanizması sağlar.

Bir ContractHandle nesne oluşturulduğunda, oluşturucuya AcquireLifetimeToken geçirilen sözleşmede yöntemini çağırır. ContractHandle Nesne atıldığında veya son haline getirildiğinde, sözleşmedeki RevokeLifetimeToken askıya alma işlemini kaldıran yöntemini çağırır.

Bağdaştırıcılar sözleşmeyi uygular. ContractHandle sınıfı, işlem hattı geliştiricilerinin uyarlanan sözleşmenin kullanım ömrünü yönetmesine yardımcı olmak için sözleşmeden görünüme bağdaştırıcısında kullanılmak üzere tasarlanmıştır. Genellikle, bu sınıfın bir örneği bağdaştırıcı sınıfının oluşturulması sırasında örneği oluşturulur ve bağdaştırıcının örnek alanında depolanır. Bağdaştırıcı sınıfı atık olarak toplandığında, ContractHandle nesnesi de toplanır ve ContractHandle nesne sözleşmedeki yaşam süresi belirtecini iptal eder.

Görünümden sözleşmeye bağdaştırıcılarınızın sınıfından devralmalarını ContractBase öneririz. Ardından, üyeleri IContractiçin varsayılan bir uygulama kullanabilirsiniz. Bu, yalnızca kendi sözleşmenizin üyelerini uygulamanız gerektiği anlamına gelir.

Oluşturucular

ContractHandle(IContract)

ContractHandle sınıfının yeni bir örneğini başlatır.

Özellikler

Contract

İşlem hattı tarafından kullanılan sözleşmeyi alır.

Yöntemler

AppDomainOwner(AppDomain)

Uygulama etki alanı oluşturulduğunda eklenti yan bağdaştırıcısının örneğini alır.

ContractOwnsAppDomain(IContract, AppDomain)

Bir uygulama etki alanının belirtilen sözleşmeye ait olup olmadığını belirler.

Dispose()

Girişe bakılmaksızın sözleşmedeki yaşam süresi belirtecini iptal eder.

Dispose(Boolean)

Girişe bakılmaksızın sözleşmedeki yaşam süresi belirtecini iptal eder ve isteğe bağlı olarak yönetilen kaynakları serbest bırakır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
Finalize()

Örnekle ContractHandle ilişkili kaynakları serbest bırakır.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır