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 zveřejňuje vzdáleně, naleznete v tématu IpcServerChannel.

Poznámky

Important

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

Kanály používají infrastruktura vzdálené komunikace rozhraní.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 kanálem serveru. 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 ve 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 určit 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 naleznete v dokumentaci konstruktoru IpcClientChannel .

Konstruktory

Name Description
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

Name Description
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, zda je aktuální kanál zabezpečený.

Metody

Name Description
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čuje, zda je zadaný objekt roven aktuálnímu objektu.

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

Slouží jako výchozí funkce hash.

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

Získá Type aktuální instance.

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

Vytvoří mělkou kopii aktuálního Object.

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

Extrahuje identifikátor URI kanálu a vzdálený dobře známý identifikátor URI objektu ze zadané adresy URL.

ToString()

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

(Zděděno od Object)

Platí pro