Partilhar via


ServicedComponent Classe

Definição

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 done da classe ServicedComponent do objeto seja definido como true após uma invocação de método remoto.

IRemoteDispatch.RemoteDispatchNotAutoDone(String)

Não garante que, no contexto COM+, o bit done da classe ServicedComponent do objeto seja definido como true após uma invocação de método remoto.

IServicedComponentInfo.GetComponentInfo(Int32, String[])

Obtém determinadas informações sobre a instância da classe ServicedComponent.

Aplica-se a