Share via


IpcClientChannel Klasse

Definition

Implementiert für Remoteaufrufe einen Clientchannel, der Meldungen mithilfe von IPC überträgt.

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
Vererbung
IpcClientChannel
Implementiert

Beispiele

Im folgenden Codebeispiel wird die Verwendung der IpcClientChannel-Klasse veranschaulicht.

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

Im vorherigen Code wird das folgende Remoteobjekt verwendet.

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

Ein Beispiel für einen Server, der dieses Objekt remote verfügbar macht, finden Sie unter IpcServerChannel.

Hinweise

Wichtig

Das Aufrufen von Methoden aus dieser Klasse mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie die Methoden aus dieser Klasse nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.

Kanäle werden von the.NET Framework-Remotinginfrastruktur verwendet, um Remoteanrufe zu transportieren. Wenn ein Client ein Remoteobjekt aufruft, wird der Aufruf in eine Nachricht serialisiert, die von einem Clientkanal gesendet und von einem Serverkanal empfangen wird. Nachdem die Nachricht empfangen wurde, wird sie deserialisiert und verarbeitet. Alle zurückgegebenen Werte werden vom Serverkanal übertragen und vom Clientkanal empfangen.

Die IpcClientChannel -Klasse verwendet das Windows-IpC-System (Interprocess Communication), um Nachrichten zwischen Anwendungsdomänen auf demselben Computer zu transportieren. Bei der Kommunikation zwischen Anwendungsdomänen auf demselben Computer ist der IPC-Kanal viel schneller als die TCP- oder HTTP-Kanäle.

Um eine zusätzliche Verarbeitung von Nachrichten auf der Clientseite durchzuführen, können Sie eine Implementierung der Schnittstelle angeben, über die IClientChannelSinkProviderIpcClientChannel alle vom Objekt verarbeiteten Nachrichten übergeben werden.

Standardmäßig verwendet die IpcClientChannel Klasse einen Binärformatierer, um alle Nachrichten zu serialisieren.

Ein IpcClientChannel Objekt verfügt über zugeordnete Konfigurationseigenschaften, die zur Laufzeit entweder in einer Konfigurationsdatei (durch Aufrufen der statischen RemotingConfiguration.Configure Methode) oder programmgesteuert (durch Übergeben einer IDictionary Auflistung an den IpcClientChannel Konstruktor) festgelegt werden können. Eine Liste dieser Konfigurationseigenschaften finden Sie in der Dokumentation für den IpcClientChannel Konstruktor.

Konstruktoren

IpcClientChannel()

Initialisiert eine neue Instanz der IpcServerChannel-Klasse.

IpcClientChannel(IDictionary, IClientChannelSinkProvider)

Initialisiert eine neue Instanz der IpcClientChannel-Klasse mit den angegebenen Konfigurationseigenschaften und Konfigurationssenken.

IpcClientChannel(String, IClientChannelSinkProvider)

Initialisiert eine neue Instanz der IpcClientChannel-Klasse mit dem angegebenen Namen und der angegebenen Senke.

Eigenschaften

ChannelName

Ruft den Namen des aktuellen Channels ab.

ChannelPriority

Ruft die Priorität des aktuellen Channels ab.

IsSecured

Ruft einen booleschen Wert ab, der angibt, ob der aktuelle Channel sicher ist, oder legt diesen fest.

Methoden

CreateMessageSink(String, Object, String)

Gibt eine Channelnachrichtensenke zurück, die Meldungen an die angegebene URL oder das angegebene Channeldatenobjekt übermittelt.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Parse(String, String)

Extrahiert aus der angegebenen URL den Channel-URI und den URI des bekannten Remoteobjekts.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: