Partager via


RemotingConfiguration.RegisterActivatedClientType Méthode

Définition

Inscrit un Type d'objet sur le client comme type qui peut être activé sur le serveur.

Surcharges

RegisterActivatedClientType(ActivatedClientTypeEntry)

Inscrit un Type d'objet enregistré dans le ActivatedClientTypeEntry fourni sur le client comme type qui peut être activé sur le serveur.

RegisterActivatedClientType(Type, String)

Inscrit un Type d'objet sur le client comme type qui peut être activé sur le serveur, en utilisant les paramètres spécifiés pour initialiser une nouvelle instance de la classe ActivatedClientTypeEntry.

RegisterActivatedClientType(ActivatedClientTypeEntry)

Inscrit un Type d'objet enregistré dans le ActivatedClientTypeEntry fourni sur le client comme type qui peut ê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 du type activé par le client.

Exceptions

Au moins un des appelants à un niveau plus élevé dans la pile des appels n'a pas l'autorisation de configuration des types et des canaux de communication à distance.

Remarques

Pour créer une instance d’un objet activé par le client sur le serveur, vous devez connaître son Type et il doit être inscrit à l’extrémité du 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 auprès ChannelServices de , 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 à l’extrémité 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 tente de la créer. Si, en revanche, vous utilisez la Activator.CreateInstance méthode pour créer une nouvelle instance de l’objet activé par le client, vous devez fournir l’URL de l’application distante en tant que paramètre, de sorte qu’aucune inscription préalable du côté client n’est nécessaire. Pour fournir à la Activator.CreateInstance méthode l’URL du serveur sur lequel vous souhaitez créer l’objet, vous devez encapsuler l’URL dans une instance de la UrlAttribute classe .

Pour obtenir une description détaillée des objets activés par le client, consultez Activation du client.

Voir aussi

S’applique à

RegisterActivatedClientType(Type, String)

Inscrit un Type d'objet sur le client comme type qui peut être activé sur le serveur, en utilisant les paramètres spécifiés pour initialiser une nouvelle instance de la classe ActivatedClientTypeEntry.

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

Type d'objet.

appUrl
String

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

Exceptions

Le paramètre typeName ou URI est null.

Au moins un des appelants à un niveau plus élevé dans la pile des appels n'a pas l'autorisation de configuration des types et des canaux de communication à distance.

Exemples

L’exemple de code suivant illustre l’inscription d’un type d’objet à l’extrémité 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 la RegisterActivatedServiceType méthode .

#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 connaître son Type et il doit être inscrit à l’extrémité du 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 auprès ChannelServices de , 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 à l’extrémité 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 tente de la créer. Si, en revanche, vous utilisez la Activator.CreateInstance méthode pour créer une nouvelle instance de l’objet activé par le client, vous devez fournir l’URL de l’application distante en tant que paramètre, de sorte qu’aucune inscription préalable du côté client n’est nécessaire. Pour fournir à la Activator.CreateInstance méthode l’URL du serveur sur lequel vous souhaitez créer l’objet, vous devez encapsuler l’URL dans une instance de la UrlAttribute classe .

Pour obtenir une description détaillée des objets activés par le client, consultez Activation du client.

Voir aussi

S’applique à