ServicedComponent Classe

Definição

Representa a classe base de todas as classes que utilizam os 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 seguinte 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 implementar esta classe como um componente COM configurado, deve gerar uma chave forte, compilar a classe como uma biblioteca e registar a biblioteca. Estes três passos são realizados pelos seguintes três comandos.

sn -k Calculator.snk
csc /t:library Calculator.cs
regsvcs Calculator.dll

Observações

Sob certas condições, uma classe derivada de ServicedComponent que corre numa aplicação COM+ pode deixar de responder. Este problema é causado por um bloqueio de atividades. As atividades podem bloquear em aplicações multithread devido a uma limpeza assíncrona das referências de componentes. Para contornar este problema, chame o Dispose método quando concluir trabalho com objetos derivados de ServicedComponent.

Note

O código do cliente deve apelar Dispose aos componentes servidos para garantir o funcionamento correto.

Construtores

Name Description
ServicedComponent()

Inicializa uma nova instância da ServicedComponent classe.

Métodos

Name Description
Activate()

Chamada pela infraestrutura quando o objeto é criado ou alocado a partir de um pool. Substitua este método para adicionar código de inicialização personalizado aos objectos.

CanBePooled()

Este método é chamado pela infraestrutura antes de o objeto ser colocado de volta no pool. Anule este 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 do construtor. Substitua este método para utilizar o valor da cadeia de construção.

CreateObjRef(Type)

Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para 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 aos objetos quando for utilizado código compilado just-in-time (JIT) ou pooling de objetos.

Dispose()

Liberta todos os recursos utilizados pelo ServicedComponent.

Dispose(Boolean)

Liberta os recursos não geridos usados pelo ServicedComponent e opcionalmente liberta os recursos geridos.

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 função de hash predefinida.

(Herdado de Object)
GetLifetimeService()

Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso.

(Herdado de MarshalByRefObject)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()

Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
IRemoteDispatch.RemoteDispatchAutoDone(String)

Esta API suporta a infraestrutura de produtos e não é pressuposta para ser utilizada diretamente a partir do seu código.

Assegura que, no contexto COM+, o ServicedComponent bit do done objeto de classe é definido para true após uma invocação remota de método.

IRemoteDispatch.RemoteDispatchNotAutoDone(String)

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

IServicedComponentInfo.GetComponentInfo(Int32, String[])

Obtém certa informação sobre a ServicedComponent instância da classe.

Aplica-se a