RemotingConfiguration.RegisterWellKnownClientType Método

Definición

Registra un objeto Type en el extremo del cliente como un tipo conocido (llamada única o singleton).

Sobrecargas

Nombre Description
RegisterWellKnownClientType(WellKnownClientTypeEntry)

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

RegisterWellKnownClientType(Type, String)

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

RegisterWellKnownClientType(WellKnownClientTypeEntry)

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

public:
 static void RegisterWellKnownClientType(System::Runtime::Remoting::WellKnownClientTypeEntry ^ entry);
public static void RegisterWellKnownClientType(System.Runtime.Remoting.WellKnownClientTypeEntry entry);
static member RegisterWellKnownClientType : System.Runtime.Remoting.WellKnownClientTypeEntry -> unit
Public Shared Sub RegisterWellKnownClientType (entry As WellKnownClientTypeEntry)

Parámetros

entry
WellKnownClientTypeEntry

Opciones de configuración para el tipo conocido.

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

Cualquier cliente que conozca el URI de un objeto conocido registrado puede obtener un proxy para el objeto registrando el canal que prefiere con ChannelServicesy activando el objeto llamando a new o Activator.GetObject. Para activar un objeto conocido con new, primero debe registrar el tipo de objeto conocido en el cliente mediante el RegisterWellKnownClientType método . Llamar al RegisterWellKnownClientType método proporciona a la infraestructura de comunicación remota la ubicación del objeto remoto, lo que permite que la new palabra clave la cree. Por otro lado, si usa el Activator.GetObject método para activar el objeto conocido, debe proporcionarlo con la dirección URL del objeto como argumento, por lo que no es necesario registrar previamente en el extremo del cliente.

Consulte también

Se aplica a

RegisterWellKnownClientType(Type, String)

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

public:
 static void RegisterWellKnownClientType(Type ^ type, System::String ^ objectUrl);
public static void RegisterWellKnownClientType(Type type, string objectUrl);
static member RegisterWellKnownClientType : Type * string -> unit
Public Shared Sub RegisterWellKnownClientType (type As Type, objectUrl As String)

Parámetros

type
Type

TypeObjeto .

objectUrl
String

Dirección URL de un objeto de cliente conocido.

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.

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 conocido. Para el código de servidor que corresponde al código de cliente presentado, vea el ejemplo del RegisterWellKnownServiceType 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::Tcp;
using namespace System::Runtime::Remoting::Channels;
int main()
{
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels.Tcp;
using System.Runtime.Remoting.Channels;

public class ClientClass {

    public static void Main() {
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels.Tcp
Imports System.Runtime.Remoting.Channels


Public Class ClientClass
   
   
   Public Shared Sub Main()
ChannelServices::RegisterChannel( gcnew TcpChannel );
RemotingConfiguration::RegisterWellKnownClientType( HelloService::typeid,
                                                    "tcp://localhost:8082/HelloServiceApplication/MyUri" );
HelloService ^ service = gcnew HelloService;
ChannelServices.RegisterChannel(new TcpChannel());

RemotingConfiguration.RegisterWellKnownClientType(
                                                   typeof(HelloService),
                                                   "tcp://localhost:8082/HelloServiceApplication/MyUri"
                                                 );

HelloService service = new HelloService();
ChannelServices.RegisterChannel(New TcpChannel())

RemotingConfiguration.RegisterWellKnownClientType(GetType(HelloService), "tcp://localhost:8082/HelloServiceApplication/MyUri")

Dim service As New HelloService()
   if ( service == nullptr )
   {
      Console::WriteLine( "Could not locate server." );
      return  -1;
   }

   // 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();
   return 0;
}

        if(service == null) {
            Console.WriteLine("Could not locate server.");
            return;
        }

        // 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();
    }
}

      If service Is Nothing Then
         Console.WriteLine("Could not locate server.")
         Return
      End If
            
      ' 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()

   End Sub

End Class

Comentarios

Cualquier cliente que conozca el URI de un objeto conocido registrado puede obtener un proxy para el objeto registrando el canal que prefiere con ChannelServicesy activando el objeto llamando a new o Activator.GetObject. Para activar un objeto conocido con new, primero debe registrar el tipo de objeto conocido en el cliente mediante el RegisterWellKnownClientType método . Llamar al RegisterWellKnownClientType método proporciona a la infraestructura de comunicación remota la ubicación del objeto remoto, lo que permite que la new palabra clave la cree. Por otro lado, si usa el Activator.GetObject método para activar el objeto conocido, debe proporcionarlo con la dirección URL del objeto como argumento, por lo que no es necesario registrar previamente en el extremo del cliente.

Consulte también

Se aplica a