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 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 |
| IRemoteDispatch.RemoteDispatchNotAutoDone(String) |
Não garante que, no contexto COM+, o ServicedComponent bit do objeto de |
| IServicedComponentInfo.GetComponentInfo(Int32, String[]) |
Obtém determinadas informações sobre a instância de ServicedComponent classe. |