Compartilhar via


RemotingConfiguration.RegisterActivatedClientType Método

Definição

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

Sobrecargas

RegisterActivatedClientType(ActivatedClientTypeEntry)

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

RegisterActivatedClientType(Type, String)

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

RegisterActivatedClientType(ActivatedClientTypeEntry)

Registra um Type de objeto registrado no ActivatedClientTypeEntry fornecido no lado 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 no topo da pilha de chamadas não tem permissão para configurar canais e tipos de comunicação remota.

Comentários

Para criar uma instância de um objeto ativado pelo cliente no servidor, você deve saber Type dela e ela deve ser registrada na extremidade 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 com ChannelServices e, em seguida, ativar o objeto chamando new.

Para ativar um tipo de objeto ativado pelo cliente com a new palavra-chave , primeiro você deve registrar o tipo de objeto na extremidade 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 na extremidade 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 .

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

Confira também

Aplica-se a

RegisterActivatedClientType(Type, String)

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

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 está ativado.

Exceções

O parâmetro typeName ou URI é null.

Pelo menos um dos chamadores no topo da pilha de chamadas não tem permissão para configurar canais e tipos 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 dela e ela deve ser registrada na extremidade 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 com ChannelServices e, em seguida, ativar o objeto chamando new.

Para ativar um tipo de objeto ativado pelo cliente com a new palavra-chave , primeiro você deve registrar o tipo de objeto na extremidade 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 na extremidade 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 .

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

Confira também

Aplica-se a