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ığını gösterir.


[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 üç komutla gerçekleştirilir.

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

Açıklamalar

Belirli koşullar altında, COM+ uygulamasında çalıştırılan sınıfından ServicedComponent türetilen bir sınıf yanıt vermeyi durdurabilir. Bu sorun bir Etkinlik kilitlenmesi nedeniyle oluşur. Etkinlikler, bileşen başvurularının zaman uyumsuz bir şekilde temizlenmesi nedeniyle çok iş parçacıklı uygulamalarda kilitlenmeye neden olabilir. Bu soruna geçici bir çözüm bulmak için, 'den türetilen nesnelerle çalışmayı tamamladığınızda yöntemini çağırın DisposeServicedComponent.

Note

İstemci kodunun düzgün çalıştığından emin olmak için hizmet alınan bileşenleri çağırması Dispose gerekir.

Oluşturucular

Name Description
ServicedComponent()

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

Yöntemler

Name Description
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, nesnesi havuza geri yerleştirilmeden önce altyapı tarafından çağrılır. Nesnenin havuza geri yerleştirilip yerleştirmeyeceğine oy vermek için bu yöntemi geçersiz kılın.

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

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

Dispose(Boolean)

tarafından ServicedComponent kullanılan yönetilmeyen kaynakları serbest bırakır ve isteğe bağlı olarak yönetilen kaynakları 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()

Geçerli örneğin Type 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 Objectbasit 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 bir dize döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

Name Description
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 ServicedComponent bitinin uzak bir yöntem çağrısından done sonra olarak ayarlanmasını true sağlar.

IRemoteDispatch.RemoteDispatchNotAutoDone(String)

COM+ bağlamında sınıf nesnesinin ServicedComponent bitinin uzak bir yöntem çağrısından done 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