Sdílet prostřednictvím


IpcClientChannel Třída

Definice

Implementuje klientský kanál pro vzdálená volání, která k přenosu zpráv používá protokol IPC.

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
Dědičnost
IpcClientChannel
Implementuje

Příklady

Následující příklad kódu ukazuje, jak používat IpcClientChannel třídu.

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

Předchozí kód používá následující vzdálený objekt.

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

Příklad serveru, který tento objekt zpřístupňuje vzdáleně, naleznete v tématu IpcServerChannel.

Poznámky

Důležité

Volání metod z této třídy s nedůvěryhodnými daty je bezpečnostní riziko. Volejte metody z této třídy pouze s důvěryhodnými daty. Další informace najdete v tématu Ověření všech vstupů.

Kanály jsou používány infrastrukturou vzdálené komunikace rozhraní the.NET Framework k přenosu vzdálených volání. Když klient volá vzdálený objekt, volání je serializováno do zprávy, která je odeslána klientským kanálem a přijata serverovým kanálem. Po přijetí zprávy se deserializuje a zpracuje. Všechny vrácené hodnoty jsou přenášeny kanálem serveru a přijaty klientským kanálem.

Třída IpcClientChannel používá systém Windows komunikace mezi procesy (IPC) k přenosu zpráv mezi doménami aplikace na stejném počítači. Při komunikaci mezi doménami aplikací na stejném počítači je kanál IPC mnohem rychlejší než kanály TCP nebo HTTP.

Chcete-li provést další zpracování zpráv na straně klienta, můžete zadat implementaci IClientChannelSinkProvider rozhraní, prostřednictvím kterého budou předány všechny zprávy zpracovávané objektem IpcClientChannel .

Ve výchozím nastavení třída IpcClientChannel používá binární formátovací modul k serializaci všech zpráv.

Objekt IpcClientChannel má přidružené vlastnosti konfigurace, které lze nastavit za běhu buď v konfiguračním souboru (vyvoláním statické RemotingConfiguration.Configure metody), nebo programově (předáním IDictionary kolekce konstruktoru IpcClientChannel ). Seznam těchto vlastností konfigurace najdete v dokumentaci konstruktoru IpcClientChannel .

Konstruktory

IpcClientChannel()

Inicializuje novou instanci IpcServerChannel třídy.

IpcClientChannel(IDictionary, IClientChannelSinkProvider)

Inicializuje novou instanci IpcClientChannel třídy se zadanými vlastnostmi konfigurace a jímkou.

IpcClientChannel(String, IClientChannelSinkProvider)

Inicializuje novou instanci IpcClientChannel třídy se zadaným názvem a jímkou.

Vlastnosti

ChannelName

Získá název aktuálního kanálu.

ChannelPriority

Získá prioritu aktuálního kanálu.

IsSecured

Získá nebo nastaví logickou hodnotu, která označuje, jestli je aktuální kanál zabezpečený.

Metody

CreateMessageSink(String, Object, String)

Vrátí jímku zpráv kanálu, která doručuje zprávy do zadané adresy URL nebo datového objektu kanálu.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
Parse(String, String)

Extrahuje identifikátor URI kanálu a identifikátor URI vzdáleného známého objektu z zadané adresy URL.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro