Compartir a través de


RemotingConfiguration.RegisterActivatedClientType Método

Definición

Registra un objeto Type en el extremo del cliente como un tipo que se puede activar en el servidor.

Sobrecargas

Nombre Description
RegisterActivatedClientType(ActivatedClientTypeEntry)

Registra un objeto Type registrado en el proporcionado ActivatedClientTypeEntry en el extremo del cliente como un tipo que se puede activar en el servidor.

RegisterActivatedClientType(Type, String)

Registra un objeto Type en el extremo del cliente como un tipo que se puede activar en el servidor mediante los parámetros especificados para inicializar una nueva instancia de la ActivatedClientTypeEntry clase.

RegisterActivatedClientType(ActivatedClientTypeEntry)

Registra un objeto Type registrado en el proporcionado ActivatedClientTypeEntry en el extremo del cliente como un tipo que se puede activar en el 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

Opciones de configuración para el tipo activado por el cliente.

Excepciones

Al menos uno de los autores de llamada más altos en la pila de llamadas no tiene permiso para configurar tipos y canales de comunicación remota.

Comentarios

Para crear una instancia de un objeto activado por el cliente en el servidor, debe conocer su Type y debe registrarse en el servidor final mediante el RegisterActivatedServiceType método . Para obtener un proxy para una nueva instancia del objeto activado por el cliente, el cliente primero debe registrar un canal con ChannelServices y, a continuación, activar el objeto llamando a new.

Para activar un tipo de objeto activado por el cliente con la new palabra clave , primero debe registrar el tipo de objeto en el cliente mediante el RegisterActivatedClientType método . Llamar al método proporciona a la RegisterActivatedClientType infraestructura de comunicación remota la ubicación de la aplicación remota donde new intenta crearla. Si, por otro lado, usa el Activator.CreateInstance método para crear una nueva instancia del objeto activado por el cliente, debe proporcionar la dirección URL de la aplicación remota como parámetro, por lo que no es necesario registrar previamente en el extremo del cliente. Para proporcionar el Activator.CreateInstance método con la dirección URL del servidor donde desea crear el objeto, debe encapsular la dirección URL en una instancia de la UrlAttribute clase .

Consulte también

Se aplica a

RegisterActivatedClientType(Type, String)

Registra un objeto Type en el extremo del cliente como un tipo que se puede activar en el servidor mediante los parámetros especificados para inicializar una nueva instancia de la ActivatedClientTypeEntry clase.

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

TypeObjeto .

appUrl
String

Dirección URL de la aplicación donde se activa este tipo.

Excepciones

El parámetro type o appUrl es null.

Al menos uno de los autores de llamada más altos en la pila de llamadas no tiene permiso para configurar tipos y canales de comunicación remota.

Ejemplos

En el ejemplo de código siguiente se muestra el registro de un tipo de objeto en el extremo del cliente como un tipo que se puede activar en el servidor. Para el código de servidor que corresponde al código de cliente presentado, vea el ejemplo del 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

Comentarios

Para crear una instancia de un objeto activado por el cliente en el servidor, debe conocer su Type y debe registrarse en el servidor final mediante el RegisterActivatedServiceType método . Para obtener un proxy para una nueva instancia del objeto activado por el cliente, el cliente primero debe registrar un canal con ChannelServices y, a continuación, activar el objeto llamando a new.

Para activar un tipo de objeto activado por el cliente con la new palabra clave , primero debe registrar el tipo de objeto en el cliente mediante el RegisterActivatedClientType método . Llamar al método proporciona a la RegisterActivatedClientType infraestructura de comunicación remota la ubicación de la aplicación remota donde new intenta crearla. Si, por otro lado, usa el Activator.CreateInstance método para crear una nueva instancia del objeto activado por el cliente, debe proporcionar la dirección URL de la aplicación remota como parámetro, por lo que no es necesario registrar previamente en el extremo del cliente. Para proporcionar el Activator.CreateInstance método con la dirección URL del servidor donde desea crear el objeto, debe encapsular la dirección URL en una instancia de la UrlAttribute clase .

Consulte también

Se aplica a