RemotingConfiguration.RegisterWellKnownClientType 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 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
- 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.