RemotingConfiguration.RegisterWellKnownClientType Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Registriert auf der Clientseite einen Objekt-Type als bekannten Typ (Einzelaufruf oder Singleton).
Überlädt
RegisterWellKnownClientType(WellKnownClientTypeEntry) |
Registriert einen im angegebenen Type erfassten Objekt-WellKnownClientTypeEntry auf der Clientseite als bekannten Typ, der auf dem Server aktiviert werden kann. |
RegisterWellKnownClientType(Type, String) |
Registriert auf der Clientseite einen Objekt-Type als bekannten Typ, der auf dem Server aktiviert werden kann, und verwendet die angegebenen Parameter zum Initialisieren einer neuen Instanz der WellKnownClientTypeEntry-Klasse. |
RegisterWellKnownClientType(WellKnownClientTypeEntry)
Registriert einen im angegebenen Type erfassten Objekt-WellKnownClientTypeEntry auf der Clientseite als bekannten Typ, der auf dem Server aktiviert werden kann.
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)
Parameter
- entry
- WellKnownClientTypeEntry
Konfigurationseinstellungen für den bekannten Typ.
Ausnahmen
Mindestens einer der Aufrufer an höherer Position im Aufrufstapel verfügt nicht über die Berechtigung zum Konfigurieren von Remotetypen und Channels.
Hinweise
Jeder Client, der den URI eines registrierten bekannten Objekts kennt, kann einen Proxy für das -Objekt abrufen, indem er den bevorzugten Kanal bei ChannelServicesregistriert und das Objekt durch Aufrufen new
von oder Activator.GetObjectaktiviert. Um ein bekanntes Objekt mit new
zu aktivieren, müssen Sie zuerst den bekannten Objekttyp auf dem Client mithilfe der RegisterWellKnownClientType -Methode registrieren. Beim Aufrufen der RegisterWellKnownClientType -Methode erhält die Remotinginfrastruktur den Speicherort des Remoteobjekts, sodass das new
Schlüsselwort es erstellen kann. Wenn Sie hingegen die Activator.GetObject -Methode verwenden, um das bekannte Objekt zu aktivieren, müssen Sie es mit der URL des Objekts als Argument angeben, sodass keine vorherige Registrierung auf dem Client-Ende erforderlich ist.
Eine ausführliche Beschreibung bekannter Objekte finden Sie unter Serveraktivierung.
Weitere Informationen
Gilt für:
RegisterWellKnownClientType(Type, String)
Registriert auf der Clientseite einen Objekt-Type als bekannten Typ, der auf dem Server aktiviert werden kann, und verwendet die angegebenen Parameter zum Initialisieren einer neuen Instanz der WellKnownClientTypeEntry-Klasse.
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)
Parameter
- objectUrl
- String
URL eines bekannten Clientobjekts.
Ausnahmen
Mindestens einer der Aufrufer an höherer Position im Aufrufstapel verfügt nicht über die Berechtigung zum Konfigurieren von Remotetypen und Channels.
Beispiele
Im folgenden Codebeispiel wird die Registrierung eines Objekttyps auf dem Clientende als bekannter Typ veranschaulicht. Den Servercode, der dem angezeigten Clientcode entspricht, finden Sie im Beispiel für die RegisterWellKnownServiceType -Methode.
#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
Hinweise
Jeder Client, der den URI eines registrierten bekannten Objekts kennt, kann einen Proxy für das -Objekt abrufen, indem er den bevorzugten Kanal bei ChannelServicesregistriert und das Objekt durch Aufrufen new
von oder Activator.GetObjectaktiviert. Um ein bekanntes Objekt mit new
zu aktivieren, müssen Sie zuerst den bekannten Objekttyp auf dem Client mithilfe der RegisterWellKnownClientType -Methode registrieren. Beim Aufrufen der RegisterWellKnownClientType -Methode erhält die Remotinginfrastruktur den Speicherort des Remoteobjekts, sodass das new
Schlüsselwort es erstellen kann. Wenn Sie hingegen die Activator.GetObject -Methode verwenden, um das bekannte Objekt zu aktivieren, müssen Sie es mit der URL des Objekts als Argument angeben, sodass keine vorherige Registrierung auf dem Client-Ende erforderlich ist.
Eine ausführliche Beschreibung bekannter Objekte finden Sie unter Serveraktivierung.