IpcClientChannel Klasse

Definition

Implementiert einen Clientkanal für Remoteanrufe, die das IPC-Protokoll zum Übertragen von Nachrichten verwenden.

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

Das folgende Codebeispiel zeigt, wie die IpcClientChannel Klasse verwendet wird.

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

Der vorangehende Code verwendet das folgende Remoteobjekt.

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

Important

Das Aufrufen von Methoden aus dieser Klasse mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. 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 der Framework-Remotinginfrastruktur zum Transport von Remoteanrufen verwendet.NET. 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 klasse IpcClientChannel verwendet das Windows Interprocess Communication (IPC)-System, 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 clientseitiger Seite durchzuführen, können Sie eine Implementierung der IClientChannelSinkProvider Schnittstelle angeben, über die alle vom IpcClientChannel 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

Name Beschreibung
IpcClientChannel()

Initialisiert eine neue Instanz der IpcServerChannel-Klasse.

IpcClientChannel(IDictionary, IClientChannelSinkProvider)

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

IpcClientChannel(String, IClientChannelSinkProvider)

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

Eigenschaften

Name Beschreibung
ChannelName

Ruft den Namen des aktuellen Kanals ab.

ChannelPriority

Ruft die Priorität des aktuellen Kanals ab.

IsSecured

Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob der aktuelle Kanal sicher ist.

Methoden

Name Beschreibung
CreateMessageSink(String, Object, String)

Gibt eine Kanalnachrichtensenke zurück, die Nachrichten an das angegebene URL- oder Kanaldatenobjekt übermittelt.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
Parse(String, String)

Extrahiert den Kanal-URI und den bekannten Remoteobjekt-URI aus der angegebenen URL.

ToString()

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

(Geerbt von Object)

Gilt für: