IpcClientChannel Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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) |