ServicedComponent Sınıf

Tanım

COM+ hizmetlerini kullanan tüm sınıfların temel sınıfını temsil eder.

public ref class ServicedComponent abstract : ContextBoundObject, IDisposable, System::EnterpriseServices::IRemoteDispatch, System::EnterpriseServices::IServicedComponentInfo
[System.Serializable]
public abstract class ServicedComponent : ContextBoundObject, IDisposable, System.EnterpriseServices.IRemoteDispatch, System.EnterpriseServices.IServicedComponentInfo
[<System.Serializable>]
type ServicedComponent = class
    inherit ContextBoundObject
    interface IRemoteDispatch
    interface IDisposable
    interface IServicedComponentInfo
Public MustInherit Class ServicedComponent
Inherits ContextBoundObject
Implements IDisposable, IRemoteDispatch, IServicedComponentInfo
Devralma
Türetilmiş
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki kod örneği, bir sınıfın yapılandırılmış bir COM bileşeni olarak nasıl kullanıma çıkarıldığı göstermektedir.


[assembly:ApplicationName("Calculator")];
[assembly:ApplicationActivation(ActivationOption::Library)];
[assembly:System::Reflection::AssemblyKeyFile("Calculator.snk")];
public ref class Calculator: public ServicedComponent
{
public:
   int Add( int x, int y )
   {
      return (x + y);
   }

};
using System;
using System.EnterpriseServices;

[assembly: ApplicationName("Calculator")]
[assembly: ApplicationActivation(ActivationOption.Library)]
[assembly: System.Reflection.AssemblyKeyFile("Calculator.snk")]
public class Calculator : ServicedComponent
{
    public int Add (int x, int y)
    {
        return(x+y);
    }
}

Bu sınıfı yapılandırılmış bir COM bileşeni olarak dağıtmak için güçlü bir anahtar oluşturmanız, sınıfı kitaplık olarak derlemeniz ve kitaplığı kaydetmeniz gerekir. Bu üç adım aşağıdaki üç komut tarafından gerçekleştirilir.

sn -k Calculator.snk  
csc /t:library Calculator.cs  
regsvcs Calculator.dll  

Açıklamalar

Belirli koşullar altında, BIR COM+ uygulamasında çalışan sınıfından ServicedComponent türetilen bir sınıf yanıt vermeyi durdurabilir. Bu sorun bir Etkinlik kilitlenmesi nedeniyle oluşur. Bileşen başvurularının zaman uyumsuz bir şekilde temizlenmesi nedeniyle etkinlikler çok iş parçacıklı uygulamalarda kilitlenebilir. Bu sorunu geçici olarak çözmek için, 'den türetilen nesnelerle çalışmayı tamamladığınızda yöntemini çağırın DisposeServicedComponent.

Not

İstemci kodunun düzgün bir şekilde çalıştığından emin olmak için hizmet alınan bileşenlerde çağrısı Dispose yapması gerekir.

Oluşturucular

ServicedComponent()

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

Yöntemler

Activate()

Nesne bir havuzdan oluşturulduğunda veya ayrıldığında altyapı tarafından çağrılır. Nesnelere özel başlatma kodu eklemek için bu yöntemi geçersiz kılın.

CanBePooled()

Bu yöntem, nesne havuza geri yerleştirilmeden önce altyapı tarafından çağrılır. Bu yöntemi geçersiz kılarak nesnenin havuza geri alınıp alınmayacağına oy verin.

Construct(String)

Oluşturucu çağrıldıktan hemen sonra altyapı tarafından çağrılır ve oluşturucu dizesini geçirir. Yapı dizesi değerini kullanmak için bu yöntemi geçersiz kılın.

CreateObjRef(Type)

Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur.

(Devralındığı yer: MarshalByRefObject)
Deactivate()

Nesne devre dışı bırakılacakken altyapı tarafından çağrılır. Tam zamanında (JIT) derlenmiş kod veya nesne havuzu kullanıldığında nesnelere özel sonlandırma kodu eklemek için bu yöntemi geçersiz kılın.

Dispose()

ServicedComponent tarafından kullanılan tüm kaynakları serbest bırakır.

Dispose(Boolean)

ServicedComponent tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır.

DisposeObject(ServicedComponent)

Nesneyi son haline dönüştürür ve ilişkili COM+ başvuruyu kaldırır.

Equals(Object)

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

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

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

(Devralındığı yer: Object)
GetLifetimeService()
Geçersiz.

Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır.

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

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

(Devralındığı yer: Object)
InitializeLifetimeService()
Geçersiz.

Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır.

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

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

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

Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur.

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

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

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

IRemoteDispatch.RemoteDispatchAutoDone(String)

Bu API, ürün altyapısını destekler ve doğrudan kodunuzdan kullanıma yönelik değildir.

COM+ bağlamında sınıf nesnesinin done bitinin uzak yöntem çağrısından ServicedComponent sonra olarak true ayarlanmasını sağlar.

IRemoteDispatch.RemoteDispatchNotAutoDone(String)

COM+ bağlamında sınıf nesnesinin done bitinin uzak bir yöntem çağrısından ServicedComponent sonra olarak ayarlanmasını true sağlamaz.

IServicedComponentInfo.GetComponentInfo(Int32, String[])

Sınıf örneği hakkında ServicedComponent belirli bilgileri alır.

Şunlara uygulanır