RemotingConfiguration.RegisterWellKnownClientType Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Registreert een object Type aan het clienteindeinde als een bekend type (één aanroep of singleton).
Overloads
| Name | Description |
|---|---|
| RegisterWellKnownClientType(WellKnownClientTypeEntry) |
Registreert een object dat is vastgelegd in het opgegeven WellKnownClientTypeEntry clienteindpunt Type als een bekend type dat op de server kan worden geactiveerd. |
| RegisterWellKnownClientType(Type, String) |
Registreert een object Type aan het clienteindpunt als een bekend type dat kan worden geactiveerd op de server, met behulp van de opgegeven parameters om een nieuw exemplaar van de WellKnownClientTypeEntry klasse te initialiseren. |
RegisterWellKnownClientType(WellKnownClientTypeEntry)
Registreert een object dat is vastgelegd in het opgegeven WellKnownClientTypeEntry clienteindpunt Type als een bekend type dat op de server kan worden geactiveerd.
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)
Parameters
- entry
- WellKnownClientTypeEntry
Configuratie-instellingen voor het bekende type.
Uitzonderingen
Ten minste één van de bellers hoger in de callstack is niet gemachtigd om externe typen en kanalen te configureren.
Opmerkingen
Elke client die de URI van een geregistreerd bekend object kent, kan een proxy voor het object verkrijgen door het kanaal te registreren waarmee ChannelServiceshet object de voorkeur geeft en het object te activeren door aan te roepen new of Activator.GetObject. Als u een bekend object wilt activeren, newmoet u eerst het bekende objecttype op de client registreren met behulp van de RegisterWellKnownClientType methode. Het aanroepen van de RegisterWellKnownClientType methode geeft de externe infrastructuur de locatie van het externe object, waardoor het new trefwoord het kan maken. Als u daarentegen de Activator.GetObject methode gebruikt om het bekende object te activeren, moet u dit opgeven met de URL van het object als argument, zodat er geen voorafgaande registratie op het clienteindeinde nodig is.
Zie Serveractivering voor een gedetailleerde beschrijving van bekende objecten.
Zie ook
Van toepassing op
RegisterWellKnownClientType(Type, String)
Registreert een object Type aan het clienteindpunt als een bekend type dat kan worden geactiveerd op de server, met behulp van de opgegeven parameters om een nieuw exemplaar van de WellKnownClientTypeEntry klasse te initialiseren.
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)
Parameters
- objectUrl
- String
URL van een bekend clientobject.
Uitzonderingen
Ten minste één van de bellers hoger in de callstack is niet gemachtigd om externe typen en kanalen te configureren.
Voorbeelden
In het volgende codevoorbeeld ziet u de registratie van een objecttype aan het clienteindeinde als een bekend type. Zie het voorbeeld voor de methode voor de servercode die overeenkomt met de RegisterWellKnownServiceType gepresenteerde clientcode.
#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
Opmerkingen
Elke client die de URI van een geregistreerd bekend object kent, kan een proxy voor het object verkrijgen door het kanaal te registreren waarmee ChannelServiceshet object de voorkeur geeft en het object te activeren door aan te roepen new of Activator.GetObject. Als u een bekend object wilt activeren, newmoet u eerst het bekende objecttype op de client registreren met behulp van de RegisterWellKnownClientType methode. Het aanroepen van de RegisterWellKnownClientType methode geeft de externe infrastructuur de locatie van het externe object, waardoor het new trefwoord het kan maken. Als u daarentegen de Activator.GetObject methode gebruikt om het bekende object te activeren, moet u dit opgeven met de URL van het object als argument, zodat er geen voorafgaande registratie op het clienteindeinde nodig is.
Zie Serveractivering voor een gedetailleerde beschrijving van bekende objecten.