Compartilhar via


RemotingConfiguration.RegisterActivatedClientType Método

Definição

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

Sobrecargas

Nome Description
RegisterActivatedClientType(ActivatedClientTypeEntry)

Registra um objeto Type registrado no final do cliente fornecido ActivatedClientTypeEntry como um tipo que pode ser ativado no servidor.

RegisterActivatedClientType(Type, String)

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

RegisterActivatedClientType(ActivatedClientTypeEntry)

Registra um objeto Type registrado no final do cliente fornecido ActivatedClientTypeEntry 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

Configurações para o tipo ativado pelo cliente.

Exceções

Pelo menos um dos chamadores mais altos na caixa de chamadas não tem permissão para configurar tipos e canais de comunicação remota.

Comentários

Para criar uma instância de um objeto ativado pelo cliente no servidor, você deve saber Type e ele deve ser registrado no final 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 registrar um canal e ChannelServices ativar o objeto chamando new.

Para ativar um tipo de objeto ativado pelo cliente com a new palavra-chave, primeiro registre o tipo de objeto no final do cliente usando o RegisterActivatedClientType método. Chamar o RegisterActivatedClientType método fornece à infraestrutura de comunicação remota o local do aplicativo remoto em new que tenta criá-lo. Se, por outro lado, você usar o Activator.CreateInstance método para criar uma nova instância do objeto ativado pelo cliente, deverá fornecer a URL do aplicativo remoto como um parâmetro, portanto, nenhum registro anterior no final do cliente será necessário. Para fornecer o Activator.CreateInstance método com a URL do servidor em que você deseja criar o objeto, você deve encapsular a URL em uma instância da UrlAttribute classe.

Confira também

Aplica-se a

RegisterActivatedClientType(Type, String)

Registra um objeto Type na extremidade do cliente como um tipo que pode ser ativado no servidor, usando os parâmetros fornecidos 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 do aplicativo em que esse tipo é ativado.

Exceções

O type parâmetro ou appUrl o parâmetro é null.

Pelo menos um dos chamadores mais altos na caixa de chamadas não tem permissão para configurar tipos e canais de comunicação remota.

Exemplos

O exemplo de código a seguir demonstra o registro 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, consulte 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

Comentários

Para criar uma instância de um objeto ativado pelo cliente no servidor, você deve saber Type e ele deve ser registrado no final 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 registrar um canal e ChannelServices ativar o objeto chamando new.

Para ativar um tipo de objeto ativado pelo cliente com a new palavra-chave, primeiro registre o tipo de objeto no final do cliente usando o RegisterActivatedClientType método. Chamar o RegisterActivatedClientType método fornece à infraestrutura de comunicação remota o local do aplicativo remoto em new que tenta criá-lo. Se, por outro lado, você usar o Activator.CreateInstance método para criar uma nova instância do objeto ativado pelo cliente, deverá fornecer a URL do aplicativo remoto como um parâmetro, portanto, nenhum registro anterior no final do cliente será necessário. Para fornecer o Activator.CreateInstance método com a URL do servidor em que você deseja criar o objeto, você deve encapsular a URL em uma instância da UrlAttribute classe.

Confira também

Aplica-se a