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 durchgeführt.

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

Hinweise

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

Note

Clientcode muss dienstierte Komponenten aufrufen Dispose , um einen ordnungsgemäßen Vorgang sicherzustellen.

Konstruktoren

Name Beschreibung
ServicedComponent()

Initialisiert eine neue Instanz der ServicedComponent-Klasse.

Methoden

Name Beschreibung
Activate()

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

CanBePooled()

Diese Methode wird von der Infrastruktur aufgerufen, bevor das Objekt wieder in den Pool versetzt wird. Überschreiben Sie diese Methode, um abzustimmen, ob das Objekt wieder in den Pool eingefügt wird.

Construct(String)

Wird von der Infrastruktur direkt nach dem Aufruf des Konstruktors aufgerufen, und übergeben Sie die Konstruktorzeichenfolge. Überschreiben Sie diese Methode, um den Konstruktionszeichenfolgenwert zu verwenden.

CreateObjRef(Type)

Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird.

(Geerbt von MarshalByRefObject)
Deactivate()

Wird von der Infrastruktur aufgerufen, wenn das Objekt deaktiviert werden soll. Überschreiben Sie diese Methode, um Objekte benutzerdefinierten Finalisierungscode hinzuzufügen, wenn just-in-time (JIT) kompilierter Code oder Objektpooling verwendet wird.

Dispose()

Veröffentlicht alle ressourcen, die von der ServicedComponent.

Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von den ServicedComponent verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei.

DisposeObject(ServicedComponent)

Schließt das Objekt ab und entfernt den zugehörigen COM+-Verweis.

Equals(Object)

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

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetLifetimeService()

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

(Geerbt von MarshalByRefObject)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeLifetimeService()

Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie der 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

Name Beschreibung
IRemoteDispatch.RemoteDispatchAutoDone(String)

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

Stellt sicher, dass im COM+-Kontext das Bit des ServicedComponent Klassenobjekts done nach einem Aufruf einer Remotemethode festgelegt true ist.

IRemoteDispatch.RemoteDispatchNotAutoDone(String)

Stellt nicht sicher, dass im COM+-Kontext das Bit des ServicedComponent Klassenobjekts done nach einem Aufruf der Remotemethode festgelegt true ist.

IServicedComponentInfo.GetComponentInfo(Int32, String[])

Ruft bestimmte Informationen zur ServicedComponent Klasseninstanz ab.

Gilt für: