Język

IpcClientChannel Klasa

Definicja

Implementuje kanał klienta dla wywołań zdalnych, które używają protokołu IPC do przesyłania komunikatów.

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
Dziedziczenie
IpcClientChannel
Implementuje

Przykłady

W poniższym przykładzie kodu pokazano, jak używać IpcClientChannel klasy .

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

Powyższy kod używa następującego obiektu zdalnego.

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

Przykład serwera, który uwidacznia ten obiekt zdalnie, zobacz IpcServerChannel.

Uwagi

Ważna

Wywoływanie metod z tej klasy z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Wywołaj metody z tej klasy tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Validate All Inputs.

Kanały są używane przez infrastrukturę komunikacji zdalnej platformy.NET Framework do transportu połączeń zdalnych. Gdy klient wywołuje obiekt zdalny, wywołanie jest serializowane do komunikatu wysyłanego przez kanał klienta i odbieranego przez kanał serwera. Po odebraniu komunikatu jest deserializowany i przetwarzany. Wszystkie zwrócone wartości są przesyłane przez kanał serwera i odbierane przez kanał klienta.

Klasa IpcClientChannel używa systemu komunikacji międzyprocesowej (IPC) Windows do transportu komunikatów między domenami aplikacji na tym samym komputerze. Podczas komunikacji między domenami aplikacji na tym samym komputerze kanał IPC jest znacznie szybszy niż kanały TCP lub HTTP.

Aby wykonać dodatkowe przetwarzanie komunikatów po stronie klienta, można określić implementację interfejsu IClientChannelSinkProvider , za pomocą którego zostaną przekazane wszystkie komunikaty przetwarzane przez IpcClientChannel obiekt.

Domyślnie IpcClientChannel klasa używa formatatora binarnego do serializacji wszystkich komunikatów.

Obiekt IpcClientChannel ma skojarzone właściwości konfiguracji, które można ustawić w czasie wykonywania w pliku konfiguracji (wywołując metodę statyczną RemotingConfiguration.Configure ) lub programowo (przekazując IDictionary kolekcję do konstruktora IpcClientChannel ). Listę tych właściwości konfiguracji można znaleźć w dokumentacji konstruktora IpcClientChannel .

Konstruktory

Nazwa Opis
IpcClientChannel()

Inicjuje nowe wystąpienie klasy IpcServerChannel.

IpcClientChannel(IDictionary, IClientChannelSinkProvider)

Inicjuje nowe wystąpienie IpcClientChannel klasy z określonymi właściwościami konfiguracji i ujściem.

IpcClientChannel(String, IClientChannelSinkProvider)

Inicjuje IpcClientChannel nowe wystąpienie klasy o określonej nazwie i ujściu.

Właściwości

Nazwa Opis
ChannelName

Pobiera nazwę bieżącego kanału.

ChannelPriority

Pobiera priorytet bieżącego kanału.

IsSecured

Pobiera lub ustawia wartość logiczną wskazującą, czy bieżący kanał jest bezpieczny.

Metody

Nazwa Opis
CreateMessageSink(String, Object, String)

Zwraca ujście komunikatu kanału, który dostarcza komunikaty do określonego adresu URL lub obiektu danych kanału.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
Parse(String, String)

Wyodrębnia identyfikator URI kanału i zdalnego dobrze znanego identyfikatora URI obiektu z określonego adresu URL.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy