ServicedComponent Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta la classe base di tutte le classi che utilizzano i servizi COM+.
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
- Ereditarietà
- Derivato
- Attributi
- Implementazioni
Esempio
Nell'esempio di codice seguente viene illustrato come esporre una classe come componente COM configurato.
[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);
}
}
Per distribuire questa classe come componente COM configurato, è necessario generare una chiave complessa, compilare la classe come libreria e registrare la libreria. Questi tre passaggi vengono eseguiti dai tre comandi seguenti.
sn -k Calculator.snk
csc /t:library Calculator.cs
regsvcs Calculator.dll
Commenti
In determinate condizioni, una classe derivata da ServicedComponent che viene eseguita in un'applicazione COM+ può smettere di rispondere. Questo problema è causato da un deadlock dell'attività. Le attività possono essere deadlock nelle applicazioni multithreading a causa di una pulizia asincrona dei riferimenti ai componenti. Per risolvere questo problema, chiamare il Dispose metodo quando si completa il lavoro con gli oggetti derivati da ServicedComponent.
Nota
Il codice client deve chiamare Dispose
sui componenti serviti per garantire il corretto funzionamento.
Costruttori
ServicedComponent() |
Inizializza una nuova istanza della classe ServicedComponent. |
Metodi
Activate() |
Metodo chiamato dall’infrastruttura quando l’oggetto viene creato o allocato da un pool. Sottoporre a override il metodo per aggiungere codice di inizializzazione personalizzato agli oggetti. |
CanBePooled() |
Questo metodo viene chiamato dall’infrastruttura prima che l’oggetto sia inserito nuovamente nel pool. Sottoporre a override il metodo per determinare il reinserimento dell'oggetto nel pool. |
Construct(String) |
Metodo chiamato dall'infrastruttura subito dopo la chiamata al costruttore, passando la stringa del costruttore. Sottoporre a override il metodo per utilizzare il valore della stringa del costruttore. |
CreateObjRef(Type) |
Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto. (Ereditato da MarshalByRefObject) |
Deactivate() |
Metodo chiamato dall’infrastruttura quando l’oggetto sta per essere disattivato. Sottoporre a override il metodo per aggiungere codice di completamento personalizzato agli oggetti quando si utilizza codice compilato JIT o il pool di oggetti. |
Dispose() |
Rilascia tutte le risorse usate da ServicedComponent. |
Dispose(Boolean) |
Rilascia le risorse non gestite usate da ServicedComponent e, facoltativamente, le risorse gestite. |
DisposeObject(ServicedComponent) |
Consente di completare l'oggetto e di rimuovere il riferimento a COM+ associato. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetLifetimeService() |
Obsoleti.
Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza. (Ereditato da MarshalByRefObject) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
InitializeLifetimeService() |
Obsoleti.
Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza. (Ereditato da MarshalByRefObject) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
MemberwiseClone(Boolean) |
Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente. (Ereditato da MarshalByRefObject) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IRemoteDispatch.RemoteDispatchAutoDone(String) |
Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice. Garantisce che, nel contesto COM+, il bit |
IRemoteDispatch.RemoteDispatchNotAutoDone(String) |
Non garantisce che, nel contesto COM+, il bit |
IServicedComponentInfo.GetComponentInfo(Int32, String[]) |
Ottiene alcune informazioni sull'istanza della classe ServicedComponent. |