Partager via


RemotingConfiguration.RegisterActivatedClientType Méthode

Définition

Inscrit un objet Type à la fin du client en tant que type qui peut être activé sur le serveur.

Surcharges

Nom Description
RegisterActivatedClientType(ActivatedClientTypeEntry)

Inscrit un objet Type enregistré dans le client fourni ActivatedClientTypeEntry en tant que type pouvant être activé sur le serveur.

RegisterActivatedClientType(Type, String)

Inscrit un objet Type à la fin du client en tant que type pouvant être activé sur le serveur, à l’aide des paramètres donnés pour initialiser une nouvelle instance de la ActivatedClientTypeEntry classe.

RegisterActivatedClientType(ActivatedClientTypeEntry)

Inscrit un objet Type enregistré dans le client fourni ActivatedClientTypeEntry en tant que type pouvant être activé sur le serveur.

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)

Paramètres

entry
ActivatedClientTypeEntry

Paramètres de configuration pour le type activé par le client.

Exceptions

Au moins un des appelants plus haut dans la pile d’appels n’est pas autorisé à configurer les types et canaux de communication à distance.

Remarques

Pour créer une instance d’un objet activé par le client sur le serveur, vous devez le connaître Type et l’inscrire sur le serveur à l’aide de la RegisterActivatedServiceType méthode. Pour obtenir un proxy pour une nouvelle instance de l’objet activé par le client, le client doit d’abord inscrire un canal, ChannelServices puis activer l’objet en appelant new.

Pour activer un type d’objet activé par le client avec le new mot clé, vous devez d’abord inscrire le type d’objet à la fin du client à l’aide de la RegisterActivatedClientType méthode. L’appel de la RegisterActivatedClientType méthode donne à l’infrastructure de communication à distance l’emplacement de l’application distante où new il tente de le créer. Si, d’autre part, vous utilisez la Activator.CreateInstance méthode pour créer une instance de l’objet activé par le client, vous devez fournir l’URL de l’application distante en tant que paramètre. Par conséquent, aucune inscription préalable à la fin du client n’est nécessaire. Pour fournir la Activator.CreateInstance méthode avec l’URL du serveur où vous souhaitez créer l’objet, vous devez encapsuler l’URL dans une instance de la UrlAttribute classe.

Voir aussi

S’applique à

RegisterActivatedClientType(Type, String)

Inscrit un objet Type à la fin du client en tant que type pouvant être activé sur le serveur, à l’aide des paramètres donnés pour initialiser une nouvelle instance de la ActivatedClientTypeEntry classe.

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)

Paramètres

type
Type

TypeObjet .

appUrl
String

URL de l’application où ce type est activé.

Exceptions

Le ou type le appUrl paramètre est null.

Au moins un des appelants plus haut dans la pile d’appels n’est pas autorisé à configurer les types et canaux de communication à distance.

Exemples

L’exemple de code suivant illustre l’inscription d’un type d’objet à la fin du client en tant que type pouvant être activé sur le serveur. Pour le code serveur qui correspond au code client présenté, consultez l’exemple de méthode RegisterActivatedServiceType .

#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

Remarques

Pour créer une instance d’un objet activé par le client sur le serveur, vous devez le connaître Type et l’inscrire sur le serveur à l’aide de la RegisterActivatedServiceType méthode. Pour obtenir un proxy pour une nouvelle instance de l’objet activé par le client, le client doit d’abord inscrire un canal, ChannelServices puis activer l’objet en appelant new.

Pour activer un type d’objet activé par le client avec le new mot clé, vous devez d’abord inscrire le type d’objet à la fin du client à l’aide de la RegisterActivatedClientType méthode. L’appel de la RegisterActivatedClientType méthode donne à l’infrastructure de communication à distance l’emplacement de l’application distante où new il tente de le créer. Si, d’autre part, vous utilisez la Activator.CreateInstance méthode pour créer une instance de l’objet activé par le client, vous devez fournir l’URL de l’application distante en tant que paramètre. Par conséquent, aucune inscription préalable à la fin du client n’est nécessaire. Pour fournir la Activator.CreateInstance méthode avec l’URL du serveur où vous souhaitez créer l’objet, vous devez encapsuler l’URL dans une instance de la UrlAttribute classe.

Voir aussi

S’applique à