Condividi tramite


IpcClientChannel Classe

Definizione

Implementa un canale client per chiamate remote che utilizza il protocollo IPC per la trasmissione dei messaggi.

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
Ereditarietà
IpcClientChannel
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrato l'utilizzo della 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);
    }
}

Il codice precedente usa l'oggetto remoto seguente.

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++);
  } }
}

Per un esempio di server che espone questo oggetto in remoto, vedere IpcServerChannel.

Commenti

Importante

La chiamata a metodi da questa classe con dati non attendibili costituisce un rischio per la sicurezza. Chiamare i metodi da questa classe solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.

I canali vengono usati dall'infrastruttura remota di the.NET Framework per il trasporto di chiamate remote. Quando un client chiama un oggetto remoto, la chiamata viene serializzata in un messaggio inviato da un canale client e ricevuto da un canale server. Dopo aver ricevuto il messaggio, viene deserializzato ed elaborato. Tutti i valori restituiti vengono trasmessi dal canale del server e ricevuti dal canale client.

La IpcClientChannel classe usa il sistema IPC (Interprocess Communication) Windows per trasportare messaggi tra domini applicazione nello stesso computer. Quando si comunica tra domini applicazione nello stesso computer, il canale IPC è molto più veloce rispetto ai canali TCP o HTTP.

Per eseguire un'ulteriore elaborazione dei messaggi sul lato client, è possibile specificare un'implementazione dell'interfaccia IClientChannelSinkProvider tramite cui verranno passati tutti i messaggi elaborati dall'oggetto IpcClientChannel .

Per impostazione predefinita, la IpcClientChannel classe usa un formattatore binario per serializzare tutti i messaggi.

Un IpcClientChannel oggetto ha associato proprietà di configurazione che possono essere impostate in fase di esecuzione in un file di configurazione (richiamando il metodo statico RemotingConfiguration.Configure ) o a livello di codice (passando una IDictionary raccolta al IpcClientChannel costruttore). Per un elenco di queste proprietà di configurazione, vedere la documentazione per il IpcClientChannel costruttore.

Costruttori

IpcClientChannel()

Inizializza una nuova istanza della classe IpcServerChannel.

IpcClientChannel(IDictionary, IClientChannelSinkProvider)

Inizializza una nuova istanza della classe IpcClientChannel con le proprietà di configurazione e il sink specificato.

IpcClientChannel(String, IClientChannelSinkProvider)

Inizializza una nuova istanza della classe IpcClientChannel con il nome e il sink specificato.

Proprietà

ChannelName

Ottiene il nome del canale corrente.

ChannelPriority

Ottiene la priorità del canale corrente.

IsSecured

Ottiene o imposta un valore booleano che indica se il canale corrente è protetto.

Metodi

CreateMessageSink(String, Object, String)

Restituisce un sink dei messaggi del canale che invia messaggi all'URL o all'oggetto dati del canale specificato.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
Parse(String, String)

Estrae dall'URL specificato l'URI del canale e quello dell'oggetto remoto conosciuto.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a