IpcClientChannel Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 zpřístupňuje vzdáleně, naleznete v tématu IpcServerChannel.
Poznámky
Důležité
Volání metod z této třídy s nedůvěryhodnými daty je bezpečnostní riziko. Volejte metody z této třídy pouze s důvěryhodnými daty. Další informace najdete v tématu Ověření všech vstupů.
Kanály jsou používány infrastrukturou vzdálené komunikace rozhraní the.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 serverovým kanálem. 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 na 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 zadat 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 najdete v dokumentaci konstruktoru IpcClientChannel .
Konstruktory
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
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, jestli je aktuální kanál zabezpečený. |
Metody
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čí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
Parse(String, String) |
Extrahuje identifikátor URI kanálu a identifikátor URI vzdáleného známého objektu z zadané adresy URL. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |