ServicedComponent Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 |
IRemoteDispatch.RemoteDispatchNotAutoDone(String) |
COM+ bağlamında sınıf nesnesinin |
IServicedComponentInfo.GetComponentInfo(Int32, String[]) |
Sınıf örneği hakkında ServicedComponent belirli bilgileri alır. |