RemotingConfiguration.RegisterActivatedServiceType Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Inscrit un Type d'objet sur le service comme type qui peut être activé à la demande à partir d'un client.
Surcharges
RegisterActivatedServiceType(ActivatedServiceTypeEntry) |
Inscrit un type d'objet enregistré dans le ActivatedServiceTypeEntry fourni sur le service comme type pouvant être activé à la demande à partir d'un client. |
RegisterActivatedServiceType(Type) |
Inscrit un type d'objet spécifié sur le service comme type qui peut être activé à la demande à partir d'un client. |
RegisterActivatedServiceType(ActivatedServiceTypeEntry)
Inscrit un type d'objet enregistré dans le ActivatedServiceTypeEntry fourni sur le service comme type pouvant être activé à la demande à partir d'un client.
public:
static void RegisterActivatedServiceType(System::Runtime::Remoting::ActivatedServiceTypeEntry ^ entry);
public static void RegisterActivatedServiceType (System.Runtime.Remoting.ActivatedServiceTypeEntry entry);
static member RegisterActivatedServiceType : System.Runtime.Remoting.ActivatedServiceTypeEntry -> unit
Public Shared Sub RegisterActivatedServiceType (entry As ActivatedServiceTypeEntry)
Paramètres
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 le connaître 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 avec ChannelServices , puis activer l’objet en appelant new
ou Activator.CreateInstance.
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 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. Aucune inscription préalable n’est donc nécessaire au niveau du client. Pour fournir à la 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 à
RegisterActivatedServiceType(Type)
Inscrit un type d'objet spécifié sur le service comme type qui peut être activé à la demande à partir d'un client.
public:
static void RegisterActivatedServiceType(Type ^ type);
public static void RegisterActivatedServiceType (Type type);
static member RegisterActivatedServiceType : Type -> unit
Public Shared Sub RegisterActivatedServiceType (type As Type)
Paramètres
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.
Exemples
L’exemple de code suivant illustre l’inscription d’un type d’objet sur le serveur en tant que type qui peut être activé par le client. Pour obtenir le code client qui correspond au code serveur présenté, consultez l’exemple de la RegisterActivatedClientType 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( 8082 ) );
RemotingConfiguration::RegisterActivatedServiceType( HelloServiceClass::typeid );
Console::WriteLine( "Press enter to stop this process." );
Console::ReadLine();
return 0;
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
public class ServerClass {
public static void Main() {
ChannelServices.RegisterChannel(new TcpChannel(8082));
RemotingConfiguration.RegisterActivatedServiceType(typeof(HelloServiceClass));
Console.WriteLine("Press enter to stop this process.");
Console.ReadLine();
}
}
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Tcp
Public Class ServerClass
Public Shared Sub Main()
ChannelServices.RegisterChannel(New TcpChannel(8082))
RemotingConfiguration.RegisterActivatedServiceType(GetType(HelloServiceClass))
Console.WriteLine("Press enter to stop this process.")
Console.ReadLine()
End Sub
End Class
L’exemple de code suivant montre l’objet de service inscrit dans l’exemple de code ci-dessus.
#using <system.dll>
using namespace System;
public ref class HelloServiceClass: public MarshalByRefObject
{
private:
static int n_instance;
public:
HelloServiceClass()
{
n_instance++;
Console::WriteLine( "{0} has been created. Instance # = {1}", this->GetType()->Name, n_instance );
}
~HelloServiceClass()
{
Console::WriteLine( "Destroyed instance {0} of HelloServiceClass.", n_instance );
n_instance--;
}
String^ HelloMethod( String^ name )
{
// Reports that the method was called.
Console::WriteLine();
Console::WriteLine( "Called HelloMethod on instance {0} with the '{1}' parameter.", n_instance, name );
// Calculates and returns the result to the client.
return String::Format( "Hi there {0}", name );
}
};
using System;
public class HelloServiceClass : MarshalByRefObject {
static int n_instance;
public HelloServiceClass() {
n_instance++;
Console.WriteLine(this.GetType().Name + " has been created. Instance # = {0}", n_instance);
}
~HelloServiceClass() {
Console.WriteLine("Destroyed instance {0} of HelloServiceClass.", n_instance);
n_instance --;
}
public String HelloMethod(String name) {
// Reports that the method was called.
Console.WriteLine();
Console.WriteLine("Called HelloMethod on instance {0} with the '{1}' parameter.",
n_instance, name);
// Calculates and returns the result to the client.
return "Hi there " + name + ".";
}
}
Public Class HelloServiceClass
Inherits MarshalByRefObject
Private Shared n_instance As Integer
Public Sub New()
n_instance += 1
Console.WriteLine(Me.GetType().Name + " has been created. Instance # = {0}", n_instance)
End Sub
Protected Overrides Sub Finalize()
Console.WriteLine("Destroyed instance {0} of HelloServiceClass.", n_instance)
n_instance -= 1
MyBase.Finalize()
End Sub
Public Function HelloMethod(name As [String]) As [String]
' Reports that the method was called.
Console.WriteLine()
Console.WriteLine("Called HelloMethod on instance {0} with the '{1}' parameter.", n_instance, name)
' Calculates and returns the result to the client.
Return "Hi there " + name + "."
End Function 'HelloMethod
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 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 avec ChannelServices , puis activer l’objet en appelant new
ou Activator.CreateInstance.
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 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. Aucune inscription préalable n’est donc nécessaire au niveau du client. Pour fournir à la 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.