RemotingConfiguration.RegisterWellKnownClientType 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 bem conhecido (chamada única ou singleton).
Sobrecargas
| Name | Description |
|---|---|
| RegisterWellKnownClientType(WellKnownClientTypeEntry) |
Regista um objeto Type registado no fornecedo WellKnownClientTypeEntry na extremidade do cliente como um tipo bem conhecido que pode ser ativado no servidor. |
| RegisterWellKnownClientType(Type, String) |
Regista um objeto Type na extremidade do cliente como um tipo bem conhecido que pode ser ativado no servidor, usando os parâmetros dados para inicializar uma nova instância da WellKnownClientTypeEntry classe. |
RegisterWellKnownClientType(WellKnownClientTypeEntry)
Regista um objeto Type registado no fornecedo WellKnownClientTypeEntry na extremidade do cliente como um tipo bem conhecido que pode ser ativado no 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
Definições de configuração para o tipo bem conhecido.
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
Qualquer cliente que conheça o URI de um objeto bem conhecido registado pode obter um proxy para o objeto registando o canal que prefere com ChannelServices, e ativando o objeto chamando new ou Activator.GetObject. Para ativar um objeto bem conhecido com new, deve primeiro registar o tipo de objeto conhecido no cliente usando o RegisterWellKnownClientType método. Chamar o RegisterWellKnownClientType método dá à infraestrutura remota a localização do objeto remoto, o que permite que a new palavra-chave o crie. Se, por outro lado, usar o Activator.GetObject método para ativar o objeto conhecido, deve fornecer-lhe a URL do objeto como argumento, pelo que não é necessário registo prévio do lado do cliente.
Para uma descrição detalhada de objetos conhecidos, veja Ativação do Servidor.
Ver também
Aplica-se a
RegisterWellKnownClientType(Type, String)
Regista um objeto Type na extremidade do cliente como um tipo bem conhecido que pode ser ativado no servidor, usando os parâmetros dados para inicializar uma nova instância da WellKnownClientTypeEntry classe.
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
URL de um objeto cliente bem conhecido.
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.
Exemplos
O exemplo de código seguinte demonstra o registo de um tipo de objeto na extremidade do cliente como um tipo bem conhecido. Para o código do servidor que corresponde ao código do cliente apresentado, veja o exemplo do 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
Observações
Qualquer cliente que conheça o URI de um objeto bem conhecido registado pode obter um proxy para o objeto registando o canal que prefere com ChannelServices, e ativando o objeto chamando new ou Activator.GetObject. Para ativar um objeto bem conhecido com new, deve primeiro registar o tipo de objeto conhecido no cliente usando o RegisterWellKnownClientType método. Chamar o RegisterWellKnownClientType método dá à infraestrutura remota a localização do objeto remoto, o que permite que a new palavra-chave o crie. Se, por outro lado, usar o Activator.GetObject método para ativar o objeto conhecido, deve fornecer-lhe a URL do objeto como argumento, pelo que não é necessário registo prévio do lado do cliente.
Para uma descrição detalhada de objetos conhecidos, veja Ativação do Servidor.