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 daquela ServicedComponent executada em um aplicativo COM+ pode parar de responder. Esse problema é causado por um deadlock de atividade. As atividades podem ser bloqueadas 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.

Note

O código do cliente deve chamar Dispose componentes atendidos para garantir a operação adequada.

Construtores

Nome Description
ServicedComponent()

Inicializa uma nova instância da classe ServicedComponent.

Métodos

Nome Description
Activate()

Chamado pela infraestrutura quando o objeto é criado ou alocado de um pool. Substitua esse método para adicionar código de inicialização personalizado aos objetos.

CanBePooled()

Esse método é chamado pela infraestrutura antes que o objeto seja colocado novamente no pool. Substitua esse método para votar se o objeto é 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 esse método para usar o 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 esse método para adicionar código de finalização personalizado a objetos quando o código compilado just-in-time (JIT) 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 COM+ associada.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetLifetimeService()

Recupera o objeto de serviço de tempo de vida atual que controla a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida dessa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

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

IRemoteDispatch.RemoteDispatchNotAutoDone(String)

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

IServicedComponentInfo.GetComponentInfo(Int32, String[])

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

Aplica-se a