RemotingConfiguration.RegisterActivatedClientType Método

Definição

Regista um objeto Type na extremidade do cliente como um tipo que pode ser ativado no servidor.

Sobrecargas

Name Description
RegisterActivatedClientType(ActivatedClientTypeEntry)

Regista um objeto Type registado no fornecido ActivatedClientTypeEntry na extremidade do cliente como um tipo que pode ser ativado no servidor.

RegisterActivatedClientType(Type, String)

Regista um objeto Type na extremidade do cliente como um tipo que pode ser ativado no servidor, usando os parâmetros dados para inicializar uma nova instância da ActivatedClientTypeEntry classe.

RegisterActivatedClientType(ActivatedClientTypeEntry)

Regista um objeto Type registado no fornecido ActivatedClientTypeEntry na extremidade do cliente como um tipo que pode ser ativado no servidor.

public:
 static void RegisterActivatedClientType(System::Runtime::Remoting::ActivatedClientTypeEntry ^ entry);
public static void RegisterActivatedClientType(System.Runtime.Remoting.ActivatedClientTypeEntry entry);
static member RegisterActivatedClientType : System.Runtime.Remoting.ActivatedClientTypeEntry -> unit
Public Shared Sub RegisterActivatedClientType (entry As ActivatedClientTypeEntry)

Parâmetros

entry
ActivatedClientTypeEntry

Definições de configuração para o tipo ativado pelo cliente.

Exceções

Pelo menos um dos chamadores mais acima na pilha de chamadas não tem permissão para configurar tipos e canais de remoto.

Observações

Para criar uma instância de um objeto ativado pelo cliente no servidor, deve saber o que Type é e deve ser registado no lado do servidor usando o RegisterActivatedServiceType método. Para obter um proxy para uma nova instância do objeto ativado pelo cliente, o cliente deve primeiro registar um canal com ChannelServices e depois ativar o objeto chamando new.

Para ativar um tipo de objeto ativado pelo cliente com a new palavra-chave, deve primeiro registar o tipo de objeto na extremidade do cliente usando o RegisterActivatedClientType método. Chamar o RegisterActivatedClientType método dá à infraestrutura remota a localização da aplicação remota onde new tenta criá-la. Se, por outro lado, usar o Activator.CreateInstance método para criar uma nova instância do objeto ativado pelo cliente, deve fornecer a URL da aplicação remota como parâmetro, pelo que não é necessário registo prévio do lado do cliente. Para fornecer ao Activator.CreateInstance método a URL do servidor onde pretende criar o objeto, deve encapsular a URL numa instância da UrlAttribute classe.

Para uma descrição detalhada dos objetos ativados pelo cliente, veja Ativação do Cliente.

Ver também

Aplica-se a

RegisterActivatedClientType(Type, String)

Regista um objeto Type na extremidade do cliente como um tipo que pode ser ativado no servidor, usando os parâmetros dados para inicializar uma nova instância da ActivatedClientTypeEntry classe.

public:
 static void RegisterActivatedClientType(Type ^ type, System::String ^ appUrl);
public static void RegisterActivatedClientType(Type type, string appUrl);
static member RegisterActivatedClientType : Type * string -> unit
Public Shared Sub RegisterActivatedClientType (type As Type, appUrl As String)

Parâmetros

type
Type

O objeto Type.

appUrl
String

URL da aplicação onde este tipo está ativado.

Exceções

O type parâmetro ou appUrl é null.

Pelo menos um dos chamadores mais acima na pilha de chamadas não tem permissão para configurar tipos e canais de remoto.

Exemplos

O exemplo de código seguinte demonstra o registo de um tipo de objeto na extremidade do cliente como um tipo que pode ser ativado no servidor. Para o código do servidor que corresponde ao código do cliente apresentado, veja o exemplo do RegisterActivatedServiceType método.

#using <system.dll>
#using <system.runtime.remoting.dll>
#using "service.dll"

using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Tcp;

int main()
{
   ChannelServices::RegisterChannel( gcnew TcpChannel );
   RemotingConfiguration::RegisterActivatedClientType( HelloServiceClass::typeid, "tcp://localhost:8082" );
   try
   {
      HelloServiceClass ^ service = gcnew HelloServiceClass;

      // Calls the remote method.
      Console::WriteLine();
      Console::WriteLine( "Calling remote Object" );
      Console::WriteLine( service->HelloMethod( "Caveman" ) );
      Console::WriteLine( service->HelloMethod( "Spaceman" ) );
      Console::WriteLine( service->HelloMethod( "Client Man" ) );
      Console::WriteLine( "Finished remote Object call" );
    }
    catch (Exception ex)
    {
        Console::WriteLine("An exception occurred: " + ex.Message);
    }
   Console::WriteLine();
   return 0;
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

public class ClientClass {

    public static void Main() {

        ChannelServices.RegisterChannel(new TcpChannel());

        RemotingConfiguration.RegisterActivatedClientType(typeof(HelloServiceClass),
                                                   "tcp://localhost:8082");

        try
        {
            HelloServiceClass service = new HelloServiceClass();

           // Calls the remote method.
           Console.WriteLine();
           Console.WriteLine("Calling remote object");
           Console.WriteLine(service.HelloMethod("Caveman"));
           Console.WriteLine(service.HelloMethod("Spaceman"));
           Console.WriteLine(service.HelloMethod("Client Man"));
           Console.WriteLine("Finished remote object call");
           Console.WriteLine();
        }
    catch (Exception ex)
    {
       Console.WriteLine("An exception occurred: " + ex.Message);
        }
    }
}
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Tcp


Public Class ClientClass
   
   Public Shared Sub Main()
      
      ChannelServices.RegisterChannel(New TcpChannel())
      
      RemotingConfiguration.RegisterActivatedClientType(GetType(HelloServiceClass), "tcp://localhost:8082")
      
      Try
          Dim service As New HelloServiceClass()
      
       
          ' Calls the remote method.
          Console.WriteLine()
          Console.WriteLine("Calling remote object")
          Console.WriteLine(service.HelloMethod("Caveman"))
          Console.WriteLine(service.HelloMethod("Spaceman"))
          Console.WriteLine(service.HelloMethod("Client Man"))
          Console.WriteLine("Finished remote object call")
      Catch ex as Exception
          Console.WriteLine("An exception occurred: " + ex.Message)
      End Try

      Console.WriteLine()

   End Sub

End Class

Observações

Para criar uma instância de um objeto ativado pelo cliente no servidor, deve saber o que Type é e deve ser registado no lado do servidor usando o RegisterActivatedServiceType método. Para obter um proxy para uma nova instância do objeto ativado pelo cliente, o cliente deve primeiro registar um canal com ChannelServices e depois ativar o objeto chamando new.

Para ativar um tipo de objeto ativado pelo cliente com a new palavra-chave, deve primeiro registar o tipo de objeto na extremidade do cliente usando o RegisterActivatedClientType método. Chamar o RegisterActivatedClientType método dá à infraestrutura remota a localização da aplicação remota onde new tenta criá-la. Se, por outro lado, usar o Activator.CreateInstance método para criar uma nova instância do objeto ativado pelo cliente, deve fornecer a URL da aplicação remota como parâmetro, pelo que não é necessário registo prévio do lado do cliente. Para fornecer ao Activator.CreateInstance método a URL do servidor onde pretende criar o objeto, deve encapsular a URL numa instância da UrlAttribute classe.

Ver também

Aplica-se a