RemotingConfiguration.RegisterActivatedClientType Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Regista um objeto Type na extremidade do cliente como um tipo que pode ser ativado no servidor.
Sobrecargas
| Name | Description |
|---|---|
| RegisterActivatedClientType(ActivatedClientTypeEntry) |
Regista um objeto Type registado no fornecido ActivatedClientTypeEntry na extremidade do cliente como um tipo que pode ser ativado no servidor. |
| RegisterActivatedClientType(Type, String) |
Regista um objeto Type na extremidade do cliente como um tipo que pode ser ativado no servidor, usando os parâmetros dados para inicializar uma nova instância da ActivatedClientTypeEntry classe. |
RegisterActivatedClientType(ActivatedClientTypeEntry)
Regista um objeto Type registado no fornecido ActivatedClientTypeEntry na extremidade 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 mais acima na pilha de chamadas não tem permissão para configurar tipos e canais de remoto.
Observações
Para criar uma instância de um objeto ativado pelo cliente no servidor, deve saber o que Type é e deve ser registado no lado 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 registar um canal com ChannelServices e depois ativar o objeto chamando new.
Para ativar um tipo de objeto ativado pelo cliente com a new palavra-chave, deve primeiro registar o tipo de objeto na extremidade do cliente usando o RegisterActivatedClientType método. Chamar o RegisterActivatedClientType método dá à infraestrutura remota a localização da aplicação remota onde new tenta criá-la. Se, por outro lado, usar o Activator.CreateInstance método para criar uma nova instância do objeto ativado pelo cliente, deve fornecer a URL da aplicação remota como parâmetro, pelo que não é necessário registo prévio do lado do cliente. Para fornecer ao Activator.CreateInstance método a URL do servidor onde pretende criar o objeto, deve encapsular a URL numa instância da UrlAttribute classe.
Para uma descrição detalhada dos objetos ativados pelo cliente, veja Ativação do Cliente.
Ver também
Aplica-se a
RegisterActivatedClientType(Type, String)
Regista um objeto Type na extremidade do cliente como um tipo que pode ser ativado no servidor, usando os parâmetros dados para inicializar uma nova instância da ActivatedClientTypeEntry classe.
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 da aplicação onde este tipo está ativado.
Exceções
O type parâmetro ou appUrl é null.
Pelo menos um dos chamadores mais acima na pilha de chamadas não tem permissão para configurar tipos e canais de remoto.
Exemplos
O exemplo de código seguinte demonstra o registo 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, veja 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
Observações
Para criar uma instância de um objeto ativado pelo cliente no servidor, deve saber o que Type é e deve ser registado no lado 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 registar um canal com ChannelServices e depois ativar o objeto chamando new.
Para ativar um tipo de objeto ativado pelo cliente com a new palavra-chave, deve primeiro registar o tipo de objeto na extremidade do cliente usando o RegisterActivatedClientType método. Chamar o RegisterActivatedClientType método dá à infraestrutura remota a localização da aplicação remota onde new tenta criá-la. Se, por outro lado, usar o Activator.CreateInstance método para criar uma nova instância do objeto ativado pelo cliente, deve fornecer a URL da aplicação remota como parâmetro, pelo que não é necessário registo prévio do lado do cliente. Para fornecer ao Activator.CreateInstance método a URL do servidor onde pretende criar o objeto, deve encapsular a URL numa instância da UrlAttribute classe.