Partager via


IpcClientChannel Classe

Définition

Implémente un canal client pour les appels distants qui utilise le protocole IPC pour émettre 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 classe IpcClientChannel.

#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 avec des données approuvées uniquement. Pour plus d’informations, consultez Valider toutes les entrées.

Les canaux sont utilisés par l’infrastructure de communication à distance the.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 IpcClientChannel classe utilise le système de communication interprocessus Windows (IPC) 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 via laquelle tous les messages traités par l’objet IpcClientChannel seront passés.

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

Un IpcClientChannel objet a des propriétés de configuration associées 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

IpcClientChannel()

Initialise une nouvelle instance de la classe IpcServerChannel.

IpcClientChannel(IDictionary, IClientChannelSinkProvider)

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

IpcClientChannel(String, IClientChannelSinkProvider)

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

Propriétés

ChannelName

Obtient le nom du canal en cours.

ChannelPriority

Obtient la priorité du canal actuel.

IsSecured

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

Méthodes

CreateMessageSink(String, Object, String)

Retourne un récepteur de messages de canal qui remet les 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()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

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

Extrait l'URI du canal et de l'objet connu distant à partir de l'URL spécifiée.

ToString()

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

(Hérité de Object)

S’applique à