Compartir vía


RemotingConfiguration.RegisterActivatedClientType Método

Definición

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

Sobrecargas

RegisterActivatedClientType(ActivatedClientTypeEntry)

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

RegisterActivatedClientType(Type, String)

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

RegisterActivatedClientType(ActivatedClientTypeEntry)

Registra un Type de objeto registrado en el ActivatedClientTypeEntry proporcionado en el 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

Valores de configuración del tipo activado en el cliente.

Excepciones

Al menos uno de los llamadores situados en la parte superior de la pila de llamadas no tiene permiso para configurar los 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 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 mediante una llamada 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. Por otro lado, si 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 .

Para obtener una descripción detallada de los objetos activados por el cliente, consulte Activación de cliente.

Consulte también

Se aplica a

RegisterActivatedClientType(Type, String)

Registra en el cliente un Type de objeto como un tipo que se puede activar en el servidor, mediante parámetros especificados para inicializar una nueva instancia de la clase 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

Type de objeto.

appUrl
String

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

Excepciones

El parámetro typeName o URI es null.

Al menos uno de los llamadores situados en la parte superior de la pila de llamadas no tiene permiso para configurar los 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 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 mediante una llamada 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. Por otro lado, si 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 .

Para obtener una descripción detallada de los objetos activados por el cliente, consulte Activación de cliente.

Consulte también

Se aplica a