Freigeben über


RemotingConfiguration.RegisterWellKnownClientType Methode

Definition

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 newzu 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

type
Type

Der Objekt-Type.

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 newzu 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: