ServicedComponent Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 |
IRemoteDispatch.RemoteDispatchNotAutoDone(String) |
Stellt nicht sicher, dass das |
IServicedComponentInfo.GetComponentInfo(Int32, String[]) |
Ruft bestimmte Informationen über die ServicedComponent-Klasseninstanz ab. |