RemotingConfiguration.RegisterActivatedClientType Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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 .