RemotingConfiguration.RegisterActivatedClientType Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Registra um objeto Type no lado do cliente como um tipo que pode ser ativado no servidor.
Sobrecargas
RegisterActivatedClientType(ActivatedClientTypeEntry) |
Registra um Type de objeto registrado no ActivatedClientTypeEntry fornecido no lado do cliente como um tipo que pode ser ativado no servidor. |
RegisterActivatedClientType(Type, String) |
Registra um Type de objeto na extremidade do cliente como um tipo que pode ser ativado no servidor, usando os parâmetros especificados para inicializar uma nova instância da classe ActivatedClientTypeEntry. |
RegisterActivatedClientType(ActivatedClientTypeEntry)
Registra um Type de objeto registrado no ActivatedClientTypeEntry fornecido no lado do cliente como um tipo que pode ser ativado no 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
Definições de configuração para o tipo ativado pelo cliente.
Exceções
Pelo menos um dos chamadores no topo da pilha de chamadas não tem permissão para configurar canais e tipos de comunicação remota.
Comentários
Para criar uma instância de um objeto ativado pelo cliente no servidor, você deve saber Type dela e ela deve ser registrada na extremidade do servidor usando o RegisterActivatedServiceType método . Para obter um proxy para uma nova instância do objeto ativado pelo cliente, o cliente deve primeiro registrar um canal com ChannelServices e, em seguida, ativar o objeto chamando new
.
Para ativar um tipo de objeto ativado pelo cliente com a new
palavra-chave , primeiro você deve registrar o tipo de objeto na extremidade do cliente usando o RegisterActivatedClientType método . Chamar o RegisterActivatedClientType método fornece à infraestrutura de comunicação remota o local do aplicativo remoto em new
que tenta criá-lo. Se, por outro lado, você usar o Activator.CreateInstance método para criar uma nova instância do objeto ativado pelo cliente, deverá fornecer a URL do aplicativo remoto como um parâmetro, portanto, nenhum registro anterior na extremidade do cliente será necessário. Para fornecer o Activator.CreateInstance método com a URL do servidor em que você deseja criar o objeto, você deve encapsular a URL em uma instância da UrlAttribute classe .
Para obter uma descrição detalhada dos objetos ativados pelo cliente, consulte Ativação do cliente.
Confira também
Aplica-se a
RegisterActivatedClientType(Type, String)
Registra um Type de objeto na extremidade do cliente como um tipo que pode ser ativado no servidor, usando os parâmetros especificados para inicializar uma nova instância da classe 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
- appUrl
- String
URL do aplicativo em que esse tipo está ativado.
Exceções
O parâmetro typeName
ou URI
é null
.
Pelo menos um dos chamadores no topo da pilha de chamadas não tem permissão para configurar canais e tipos de comunicação remota.
Exemplos
O exemplo de código a seguir demonstra o registro de um tipo de objeto na extremidade do cliente como um tipo que pode ser ativado no servidor. Para o código do servidor que corresponde ao código do cliente apresentado, consulte o exemplo do 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
Comentários
Para criar uma instância de um objeto ativado pelo cliente no servidor, você deve saber Type dela e ela deve ser registrada na extremidade do servidor usando o RegisterActivatedServiceType método . Para obter um proxy para uma nova instância do objeto ativado pelo cliente, o cliente deve primeiro registrar um canal com ChannelServices e, em seguida, ativar o objeto chamando new
.
Para ativar um tipo de objeto ativado pelo cliente com a new
palavra-chave , primeiro você deve registrar o tipo de objeto na extremidade do cliente usando o RegisterActivatedClientType método . Chamar o RegisterActivatedClientType método fornece à infraestrutura de comunicação remota o local do aplicativo remoto em new
que tenta criá-lo. Se, por outro lado, você usar o Activator.CreateInstance método para criar uma nova instância do objeto ativado pelo cliente, deverá fornecer a URL do aplicativo remoto como um parâmetro, portanto, nenhum registro anterior na extremidade do cliente será necessário. Para fornecer o Activator.CreateInstance método com a URL do servidor em que você deseja criar o objeto, você deve encapsular a URL em uma instância da UrlAttribute classe .
Para obter uma descrição detalhada dos objetos ativados pelo cliente, consulte Ativação do cliente.