Teilen über


ServicedComponent Klasse

Definition

Stellt die Basisklasse aller Klassen dar, die COM+-Dienste verwenden.

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
Vererbung
Abgeleitet
Attribute
Implementiert

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie eine Klasse als konfigurierte COM-Komponente verfügbar gemacht wird.


[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);
    }
}

Um diese Klasse als konfigurierte COM-Komponente bereitzustellen, müssen Sie einen starken Schlüssel generieren, die Klasse als Bibliothek kompilieren und die Bibliothek registrieren. Diese drei Schritte werden mit den folgenden drei Befehlen ausgeführt.

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

Hinweise

Unter bestimmten Bedingungen reagiert eine Klasse, die von ServicedComponent abgeleitet wird, die in einer COM+-Anwendung ausgeführt wird, möglicherweise nicht mehr. Dieses Problem wird durch einen Aktivitäts-Deadlock verursacht. Aktivitäten können für Multithreadanwendungen aufgrund einer asynchronen Bereinigung von Komponentenverweisen deadlockt werden. Um dieses Problem zu umgehen, rufen Sie die -Methode auf, wenn Sie die Dispose Arbeit mit von ServicedComponentabgeleiteten Objekten abschließen.

Hinweis

Clientcode muss für gewartete Komponenten aufrufen Dispose , um einen ordnungsgemäßen Betrieb sicherzustellen.

Konstruktoren

ServicedComponent()

Initialisiert eine neue Instanz der ServicedComponent-Klasse.

Methoden

Activate()

Wird von der Infrastruktur aufgerufen, wenn das Objekt erstellt oder in einem Pool reserviert wird. Überschreiben Sie diese Methode, um Objekten benutzerdefinierten Initialisierungscode hinzuzufügen.

CanBePooled()

Diese Methode wird von der Infrastruktur aufgerufen, bevor das Objekt wieder im Pool abgelegt wird. Überschreiben Sie diese Methode, um zu bestimmen, ob das Objekt wieder im Pool abgelegt werden soll.

Construct(String)

Wird von der Infrastruktur direkt nach dem Aufruf des Konstruktors aufgerufen, wobei die Konstruktorzeichenfolge übergeben wird. Überschreiben Sie diese Methode, um den Wert der Konstruktionszeichenfolge verwenden zu können.

CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.

(Geerbt von MarshalByRefObject)
Deactivate()

Wird von der Infrastruktur aufgerufen, wenn das Objekt gerade deaktiviert wird. Überschreiben Sie diese Methode, wenn Objekten bei Verwendung von JIT-kompiliertem Code (Just-in-Time) oder Objektpooling benutzerdefinierter Finalisierungscode hinzugefügt werden soll.

Dispose()

Gibt alle vom ServicedComponent verwendeten Ressourcen frei.

Dispose(Boolean)

Gibt die von ServicedComponent verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

DisposeObject(ServicedComponent)

Finalisiert das Objekt und entfernt den zugeordneten COM+-Verweis.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.

(Geerbt von MarshalByRefObject)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IRemoteDispatch.RemoteDispatchAutoDone(String)

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Stellt sicher, dass das done-Bit eines ServicedComponent-Klassenobjekts im COM+-Kontext nach einem Remotemethodenaufruf auf true festgelegt ist.

IRemoteDispatch.RemoteDispatchNotAutoDone(String)

Stellt nicht sicher, dass das done-Bit eines ServicedComponent-Klassenobjekts im COM+-Kontext nach einem Remotemethodenaufruf auf true festgelegt ist.

IServicedComponentInfo.GetComponentInfo(Int32, String[])

Ruft bestimmte Informationen über die ServicedComponent-Klasseninstanz ab.

Gilt für: