IpcClientChannel Classe

Définition

Implémente un canal client pour les appels distants qui utilise le protocole IPC pour transmettre des messages.

public ref class IpcClientChannel : System::Runtime::Remoting::Channels::IChannelSender, System::Runtime::Remoting::Channels::ISecurableChannel
public class IpcClientChannel : System.Runtime.Remoting.Channels.IChannelSender, System.Runtime.Remoting.Channels.ISecurableChannel
type IpcClientChannel = class
    interface IChannelSender
    interface IChannel
    interface ISecurableChannel
Public Class IpcClientChannel
Implements IChannelSender, ISecurableChannel
Héritage
IpcClientChannel
Implémente

Exemples

L’exemple de code suivant montre comment utiliser la IpcClientChannel classe.

#using <System.Runtime.Remoting.dll>
#using <System.dll>
#using <Counter.dll>

using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Ipc;

public ref class Client
{
public:
   void ClientTest()
   {
      IpcClientChannel^ clientChannel = gcnew IpcClientChannel;
      ChannelServices::RegisterChannel( clientChannel );

      RemotingConfiguration::RegisterWellKnownClientType( Counter::typeid, L"ipc://remote/counter" );
      Counter^ counter = gcnew Counter;
      Console::WriteLine( L"This is call number {0}.", counter->Count );
   }
};

int main()
{
   Client^ c = gcnew Client;
   c->ClientTest();
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Ipc;

public class Client
{
    public static void Main ()
    {
        IpcClientChannel clientChannel = new IpcClientChannel();
        ChannelServices.RegisterChannel(clientChannel);

        RemotingConfiguration.RegisterWellKnownClientType( typeof(Counter) , "ipc://remote/counter" );

        Counter counter = new Counter();
        Console.WriteLine("This is call number {0}.", counter.Count);
    }
}

Le code précédent utilise l’objet distant suivant.

using namespace System;
public ref class Counter: public MarshalByRefObject
{
private:
   int count;

public:
   Counter()
   {
      count = 0;
   }

   property int Count 
   {
      int get()
      {
         return (count)++;
      }
   }
};
using System;

public class Counter : MarshalByRefObject {

  private int count = 0;

  public int Count { get {
    return(count++);
  } }
}

Pour obtenir un exemple de serveur qui expose cet objet à distance, consultez IpcServerChannel.

Remarques

Important

L’appel de méthodes de cette classe avec des données non approuvées est un risque de sécurité. Appelez les méthodes de cette classe uniquement avec des données approuvées. Pour plus d’informations, consultez Valider toutes les entrées.

Les canaux sont utilisés par l’infrastructure de communication à distance .NET Framework pour transporter les appels distants. Lorsqu’un client appelle un objet distant, l’appel est sérialisé dans un message envoyé par un canal client et reçu par un canal serveur. Une fois le message reçu, il est désérialisé et traité. Toutes les valeurs retournées sont transmises par le canal serveur et reçues par le canal client.

La classe IpcClientChannel utilise le système de communication interprocesseur (IPC) Windows pour transporter les messages entre les domaines d’application sur le même ordinateur. Lorsque vous communiquez entre des domaines d’application sur le même ordinateur, le canal IPC est beaucoup plus rapide que les canaux TCP ou HTTP.

Pour effectuer un traitement supplémentaire des messages côté client, vous pouvez spécifier une implémentation de l’interface IClientChannelSinkProvider par laquelle tous les messages traités par l’objet IpcClientChannel seront transmis.

Par défaut, la IpcClientChannel classe utilise un formateur binaire pour sérialiser tous les messages.

Un IpcClientChannel objet a associé des propriétés de configuration qui peuvent être définies au moment de l’exécution dans un fichier de configuration (en appelant la méthode statique RemotingConfiguration.Configure ) ou par programmation (en passant une IDictionary collection au IpcClientChannel constructeur). Pour obtenir la liste de ces propriétés de configuration, consultez la documentation du IpcClientChannel constructeur.

Constructeurs

Nom Description
IpcClientChannel()

Initialise une nouvelle instance de la classe IpcServerChannel.

IpcClientChannel(IDictionary, IClientChannelSinkProvider)

Initialise une nouvelle instance de la IpcClientChannel classe avec les propriétés de configuration et le récepteur spécifiés.

IpcClientChannel(String, IClientChannelSinkProvider)

Initialise une nouvelle instance de la IpcClientChannel classe avec le nom et le récepteur spécifiés.

Propriétés

Nom Description
ChannelName

Obtient le nom du canal actuel.

ChannelPriority

Obtient la priorité du canal actuel.

IsSecured

Obtient ou définit une valeur booléenne qui indique si le canal actuel est sécurisé.

Méthodes

Nom Description
CreateMessageSink(String, Object, String)

Retourne un récepteur de messages de canal qui remet des messages à l’URL ou à l’objet de données de canal spécifié.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
Parse(String, String)

Extrait l’URI du canal et l’URI d’objet connu à distance à partir de l’URL spécifiée.

ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

S’applique à