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żne
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 (Weryfikowanie wszystkich danych wejściowych).
Kanały są używane przez infrastrukturę komunikacji zdalnej the.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 odbierany 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ę IClientChannelSinkProvider interfejsu, za pomocą którego będą przekazywane wszystkie komunikaty przetwarzane przez IpcClientChannel obiekt.
Domyślnie klasa IpcClientChannel 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 ). Aby uzyskać listę tych właściwości konfiguracji, zobacz dokumentację konstruktora IpcClientChannel .
Konstruktory
IpcClientChannel() |
Inicjuje nowe wystąpienie klasy IpcServerChannel. |
IpcClientChannel(IDictionary, IClientChannelSinkProvider) |
Inicjuje IpcClientChannel nowe wystąpienie klasy z określonymi właściwościami konfiguracji i ujściem. |
IpcClientChannel(String, IClientChannelSinkProvider) |
Inicjuje nowe wystąpienie klasy o określonej nazwie i ujściu IpcClientChannel . |
Właściwości
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
CreateMessageSink(String, Object, String) |
Zwraca ujście komunikatów kanału, który dostarcza komunikaty do określonego adresu URL lub obiektu danych kanału. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
Parse(String, String) |
Wyodrębnia identyfikator URI kanału i zdalny dobrze znany identyfikator URI obiektu z określonego adresu URL. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |