ServicedComponent Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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 |
| IRemoteDispatch.RemoteDispatchNotAutoDone(String) |
Não garante que, no contexto COM+, o ServicedComponent bit do |
| IServicedComponentInfo.GetComponentInfo(Int32, String[]) |
Obtém certa informação sobre a ServicedComponent instância da classe. |