Freigeben über


RemotingConfiguration.RegisterActivatedClientType Methode

Definition

Registriert ein Objekt Type am Clientende als Typ, der auf dem Server aktiviert werden kann.

Überlädt

Name Beschreibung
RegisterActivatedClientType(ActivatedClientTypeEntry)

Registriert ein objekt Type , das im bereitgestellten ActivatedClientTypeEntry Client-End als Typ aufgezeichnet wird, der auf dem Server aktiviert werden kann.

RegisterActivatedClientType(Type, String)

Registriert ein Objekt Type am Clientende als Typ, der auf dem Server aktiviert werden kann, wobei die angegebenen Parameter zum Initialisieren einer neuen Instanz der ActivatedClientTypeEntry Klasse verwendet werden können.

RegisterActivatedClientType(ActivatedClientTypeEntry)

Registriert ein objekt Type , das im bereitgestellten ActivatedClientTypeEntry Client-End als Typ aufgezeichnet wird, 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 clientaktiven Typ.

Ausnahmen

Mindestens einer der Anrufer im Callstack verfügt nicht über die Berechtigung zum Konfigurieren von Remotingtypen und Kanälen.

Hinweise

Um eine Instanz eines clientaktivierten Objekts auf dem Server zu erstellen, müssen Sie dessen Type Und sie muss mithilfe der RegisterActivatedServiceType Methode auf dem Server registriert werden. Um einen Proxy für eine neue Instanz des clientaktiven Objekts abzurufen, muss der Client zuerst einen Kanal registrieren ChannelServices und dann das Objekt durch Aufrufen newaktivieren.

Um einen clientaktiven Objekttyp mit dem new Schlüsselwort zu aktivieren, müssen Sie zuerst den Objekttyp am Clientende mithilfe der RegisterActivatedClientType Methode registrieren. Durch Aufrufen der RegisterActivatedClientType Methode erhält die Remotinginfrastruktur den Standort der Remoteanwendung, an dem new versucht wird, sie zu erstellen. Wenn Sie andererseits die Activator.CreateInstance Methode verwenden, um eine neue Instanz des clientaktiven Objekts zu erstellen, müssen Sie die URL der Remoteanwendung als Parameter angeben, sodass keine vorherige Registrierung am Clientende 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 einer Instanz der UrlAttribute Klasse kapseln.

Weitere Informationen

Gilt für:

RegisterActivatedClientType(Type, String)

Registriert ein Objekt Type am Clientende als Typ, der auf dem Server aktiviert werden kann, wobei die angegebenen Parameter zum Initialisieren einer neuen Instanz der ActivatedClientTypeEntry Klasse verwendet werden können.

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

type
Type

Das Objekt Type.

appUrl
String

URL der Anwendung, in der dieser Typ aktiviert ist.

Ausnahmen

Der type Parameter ist appUrlnull.

Mindestens einer der Anrufer im Callstack verfügt nicht über die Berechtigung zum Konfigurieren von Remotingtypen und Kanälen.

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 dargestellten 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 Instanz eines clientaktivierten Objekts auf dem Server zu erstellen, müssen Sie dessen Type Und sie muss mithilfe der RegisterActivatedServiceType Methode auf dem Server registriert werden. Um einen Proxy für eine neue Instanz des clientaktiven Objekts abzurufen, muss der Client zuerst einen Kanal registrieren ChannelServices und dann das Objekt durch Aufrufen newaktivieren.

Um einen clientaktiven Objekttyp mit dem new Schlüsselwort zu aktivieren, müssen Sie zuerst den Objekttyp am Clientende mithilfe der RegisterActivatedClientType Methode registrieren. Durch Aufrufen der RegisterActivatedClientType Methode erhält die Remotinginfrastruktur den Standort der Remoteanwendung, an dem new versucht wird, sie zu erstellen. Wenn Sie andererseits die Activator.CreateInstance Methode verwenden, um eine neue Instanz des clientaktiven Objekts zu erstellen, müssen Sie die URL der Remoteanwendung als Parameter angeben, sodass keine vorherige Registrierung am Clientende 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 einer Instanz der UrlAttribute Klasse kapseln.

Weitere Informationen

Gilt für: