RemotingConfiguration.RegisterActivatedClientType 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 Typ, der auf dem Server aktiviert werden kann.
Überlädt
RegisterActivatedClientType(ActivatedClientTypeEntry) |
Registriert einen im angegebenen Type erfassten Objekt-ActivatedClientTypeEntry auf der Clientseite als Typ, der auf dem Server aktiviert werden kann. |
RegisterActivatedClientType(Type, String) |
Registriert auf der Clientseite einen Objekt-Type als Typ, der auf dem Server aktiviert werden kann, und verwendet die angegebenen Parameter zum Initialisieren einer neuen Instanz der ActivatedClientTypeEntry-Klasse. |
RegisterActivatedClientType(ActivatedClientTypeEntry)
Registriert einen im angegebenen Type erfassten Objekt-ActivatedClientTypeEntry auf der Clientseite als Typ, der auf dem Server aktiviert werden kann.
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)
Parameter
- entry
- ActivatedClientTypeEntry
Konfigurationseinstellungen für den vom Client aktivierten 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
Um eine instance eines vom Client aktivierten Objekts auf dem Server zu erstellen, müssen Sie dessen Type wissen und es muss auf dem Serverende mithilfe der RegisterActivatedServiceType -Methode registriert werden. Um einen Proxy für eine neue instance des clientaktivierten Objekts zu erhalten, muss der Client zuerst einen Kanal bei ChannelServices registrieren und dann das -Objekt aktivieren, indem er aufruftnew
.
Um einen vom Client aktivierten Objekttyp mit dem new
Schlüsselwort (keyword) zu aktivieren, müssen Sie zuerst den Objekttyp auf dem Clientende mithilfe der RegisterActivatedClientType -Methode registrieren. Durch Aufrufen der RegisterActivatedClientType -Methode erhält die Remotinginfrastruktur den Speicherort der Remoteanwendung, an new
der versucht wird, sie zu erstellen. Wenn Sie dagegen die Activator.CreateInstance -Methode verwenden, um eine neue instance des clientaktivierten Objekts zu erstellen, müssen Sie die URL der Remoteanwendung als Parameter angeben, sodass keine vorherige Registrierung auf clientseitiger Seite erforderlich ist. Um die Activator.CreateInstance -Methode mit der URL des Servers anzugeben, auf dem Sie das Objekt erstellen möchten, müssen Sie die URL in einem instance der UrlAttribute -Klasse kapseln.
Eine ausführliche Beschreibung der vom Client aktivierten Objekte finden Sie unter Clientaktivierung.
Weitere Informationen
Gilt für:
RegisterActivatedClientType(Type, String)
Registriert auf der Clientseite einen Objekt-Type als Typ, der auf dem Server aktiviert werden kann, und verwendet die angegebenen Parameter zum Initialisieren einer neuen Instanz der ActivatedClientTypeEntry-Klasse.
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)
Parameter
- appUrl
- String
URL der Anwendung, in der dieser Typ aktiviert ist.
Ausnahmen
Der typeName
-Parameter oder der URI
-Parameter ist null
.
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 Typ veranschaulicht, der auf dem Server aktiviert werden kann. Den Servercode, der dem angezeigten Clientcode entspricht, finden Sie im Beispiel für die RegisterActivatedServiceType -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;
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
Hinweise
Um eine instance eines vom Client aktivierten Objekts auf dem Server zu erstellen, müssen Sie dessen Type wissen und es muss auf dem Serverende mithilfe der RegisterActivatedServiceType -Methode registriert werden. Um einen Proxy für eine neue instance des clientaktivierten Objekts zu erhalten, muss der Client zuerst einen Kanal bei ChannelServices registrieren und dann das -Objekt aktivieren, indem er aufruftnew
.
Um einen vom Client aktivierten Objekttyp mit dem new
Schlüsselwort (keyword) zu aktivieren, müssen Sie zuerst den Objekttyp auf dem Clientende mithilfe der RegisterActivatedClientType -Methode registrieren. Durch Aufrufen der RegisterActivatedClientType -Methode erhält die Remotinginfrastruktur den Speicherort der Remoteanwendung, an new
der versucht wird, sie zu erstellen. Wenn Sie dagegen die Activator.CreateInstance -Methode verwenden, um eine neue instance des clientaktivierten Objekts zu erstellen, müssen Sie die URL der Remoteanwendung als Parameter angeben, sodass keine vorherige Registrierung auf clientseitiger Seite erforderlich ist. Um die Activator.CreateInstance -Methode mit der URL des Servers anzugeben, auf dem Sie das Objekt erstellen möchten, müssen Sie die URL in einem instance der UrlAttribute -Klasse kapseln.
Eine ausführliche Beschreibung der vom Client aktivierten Objekte finden Sie unter Clientaktivierung.
Weitere Informationen
Gilt für:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für