ServicedComponent Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa a classe base de todas as classes usando serviços 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
- Herança
- Derivado
- Atributos
- Implementações
Exemplos
O exemplo de código a seguir demonstra como expor uma classe como um componente COM configurado.
[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);
}
}
Para implantar essa classe como um componente COM configurado, você deve gerar uma chave forte, compilar a classe como uma biblioteca e registrar a biblioteca. Essas três etapas são realizadas pelos três comandos a seguir.
sn -k Calculator.snk
csc /t:library Calculator.cs
regsvcs Calculator.dll
Comentários
Em determinadas condições, uma classe derivada de ServicedComponent que é executada em um aplicativo COM+ pode parar de responder. Esse problema é causado por um deadlock de atividade. As atividades podem fazer deadlock em aplicativos multithread devido a uma limpeza assíncrona de referências de componente. Para contornar esse problema, chame o método quando concluir o Dispose trabalho com objetos derivados de ServicedComponent.
Observação
O código do cliente deve chamar Dispose
componentes atendidos para garantir a operação adequada.
Construtores
ServicedComponent() |
Inicializa uma nova instância da classe ServicedComponent. |
Métodos
Activate() |
Chamado pela infraestrutura quando o objeto é criado ou alocado de um pool. Substitua este método para adicionar código de inicialização personalizada aos objetos. |
CanBePooled() |
Este método é chamado pela infraestrutura antes que o objeto seja colocado de volta no pool. Substitua este método para votar se o objeto deve ser colocado de volta no pool. |
Construct(String) |
Chamado pela infraestrutura logo após o construtor ser chamado, passando a cadeia de caracteres do construtor. Substitua este método para fazer uso do valor da cadeia de caracteres de construção. |
CreateObjRef(Type) |
Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
Deactivate() |
Chamado pela infraestrutura quando o objeto está prestes a ser desativado. Substitua este método para adicionar código de finalização personalizado a objetos quando o código compilado JIT (Just-In-Time) ou o pool de objetos for usado. |
Dispose() |
Libera todos os recursos usados pelo ServicedComponent. |
Dispose(Boolean) |
Libera os recursos não gerenciados usados pelo ServicedComponent e opcionalmente libera os recursos gerenciados. |
DisposeObject(ServicedComponent) |
Finaliza o objeto e remove a referência de COM+ associada. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetLifetimeService() |
Obsoleto.
Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância. (Herdado de MarshalByRefObject) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
InitializeLifetimeService() |
Obsoleto.
Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância. (Herdado de MarshalByRefObject) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto MarshalByRefObject atual. (Herdado de MarshalByRefObject) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
IRemoteDispatch.RemoteDispatchAutoDone(String) |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Garante que, no contexto COM+, o bit |
IRemoteDispatch.RemoteDispatchNotAutoDone(String) |
Não garante que, no contexto COM+, o bit |
IServicedComponentInfo.GetComponentInfo(Int32, String[]) |
Obtém determinadas informações sobre a instância da classe ServicedComponent. |