IpcClientChannel Klass

Definition

Implementerar en klientkanal för fjärranrop som använder IPC-protokollet för att överföra meddelanden.

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
Arv
IpcClientChannel
Implementeringar

Exempel

I följande kodexempel visas hur du IpcClientChannel använder klassen.

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

Föregående kod använder följande fjärrobjekt.

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

Ett exempel på en server som exponerar det här objektet via fjärranslutning finns i IpcServerChannel.

Kommentarer

Important

Att anropa metoder från den här klassen med ej betrodda data är en säkerhetsrisk. Anropa metoderna från den här klassen endast med betrodda data. För mer information, se Verifiera alla indata.

Kanaler används av .NET Framework-fjärrkommunikationsinfrastrukturen för att transportera fjärranrop. När en klient anropar ett fjärrobjekt serialiseras anropet till ett meddelande som skickas av en klientkanal och tas emot av en serverkanal. När meddelandet har tagits emot deserialiseras och bearbetas det. Alla returnerade värden överförs av serverkanalen och tas emot av klientkanalen.

Klassen IpcClientChannel använder IPC-systemet (Windows interprocess communication) för att transportera meddelanden mellan programdomäner på samma dator. När du kommunicerar mellan programdomäner på samma dator är IPC-kanalen mycket snabbare än TCP- eller HTTP-kanalerna.

Om du vill utföra ytterligare bearbetning av meddelanden på klientsidan kan du ange en implementering av IClientChannelSinkProvider gränssnittet genom vilket alla meddelanden som bearbetas av IpcClientChannel objektet skickas.

Som standard IpcClientChannel använder klassen en binär formaterare för att serialisera alla meddelanden.

Ett IpcClientChannel objekt har associerade konfigurationsegenskaper som kan anges vid körning antingen i en konfigurationsfil (genom att anropa den statiska RemotingConfiguration.Configure metoden) eller programmatiskt (genom att skicka en IDictionary samling till IpcClientChannel konstruktorn). En lista över dessa konfigurationsegenskaper finns i dokumentationen IpcClientChannel för konstruktorn.

Konstruktorer

Name Description
IpcClientChannel()

Initierar en ny instans av IpcServerChannel klassen.

IpcClientChannel(IDictionary, IClientChannelSinkProvider)

Initierar en ny instans av IpcClientChannel klassen med de angivna konfigurationsegenskaperna och mottagaren.

IpcClientChannel(String, IClientChannelSinkProvider)

Initierar en ny instans av IpcClientChannel klassen med det angivna namnet och mottagaren.

Egenskaper

Name Description
ChannelName

Hämtar namnet på den aktuella kanalen.

ChannelPriority

Hämtar prioriteten för den aktuella kanalen.

IsSecured

Hämtar eller anger ett booleskt värde som anger om den aktuella kanalen är säker.

Metoder

Name Description
CreateMessageSink(String, Object, String)

Returnerar en kanalmeddelandemottagare som levererar meddelanden till den angivna URL:en eller kanaldataobjektet.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
Parse(String, String)

Extraherar kanal-URI:n och den välkända fjärrobjekt-URI:n från den angivna URL:en.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för