Partilhar via


IpcClientChannel Classe

Definição

Implementa um canal de cliente para chamadas remotas, que usa o protocolo IPC para transmitir mensagens.

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
Herança
IpcClientChannel
Implementações

Exemplos

O exemplo de código a seguir mostra como usar a IpcClientChannel classe.

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

O código anterior usa o objeto remoto a seguir.

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

Para obter um exemplo de um servidor que expõe esse objeto remotamente, consulte IpcServerChannel.

Comentários

Importante

Chamar métodos desta classe quando você tiver dados não confiáveis é um risco à segurança. Chame os métodos dessa classe somente quando você tiver dados confiáveis. Para obter mais informações, consulte Validar Todas as Entradas.

Os canais são usados pela infraestrutura de comunicação remota do the.NET Framework para transportar chamadas remotas. Quando um cliente chama um objeto remoto, a chamada é serializada em uma mensagem enviada por um canal cliente e recebida por um canal de servidor. Depois que a mensagem é recebida, ela é desserializada e processada. Todos os valores retornados são transmitidos pelo canal do servidor e recebidos pelo canal cliente.

A IpcClientChannel classe usa o sistema de comunicação interprocessado (IPC) Windows para transportar mensagens entre domínios de aplicativo no mesmo computador. Ao se comunicar entre domínios de aplicativo no mesmo computador, o canal IPC é muito mais rápido do que os canais TCP ou HTTP.

Para executar o processamento adicional de mensagens no lado do cliente, você pode especificar uma implementação da interface por meio da IClientChannelSinkProvider qual todas as mensagens processadas pelo IpcClientChannel objeto serão passadas.

Por padrão, a IpcClientChannel classe usa um formatador binário para serializar todas as mensagens.

Um IpcClientChannel objeto tem propriedades de configuração associadas que podem ser definidas em tempo de execução em um arquivo de configuração (invocando o método estático RemotingConfiguration.Configure ) ou programaticamente (passando uma IDictionary coleção para o IpcClientChannel construtor). Para obter uma lista dessas propriedades de configuração, consulte a documentação do IpcClientChannel construtor.

Construtores

IpcClientChannel()

Inicializa uma nova instância da classe IpcServerChannel.

IpcClientChannel(IDictionary, IClientChannelSinkProvider)

Inicializa uma nova instância da classe IpcClientChannel com as propriedades de configuração e o coletor especificados.

IpcClientChannel(String, IClientChannelSinkProvider)

Inicializa uma nova instância da classe IpcClientChannel com o nome e o coletor especificados.

Propriedades

ChannelName

Obtém o nome do canal atual.

ChannelPriority

Obtém a prioridade do canal atual.

IsSecured

Obtém ou define um valor booliano que indica se o canal atual é seguro.

Métodos

CreateMessageSink(String, Object, String)

Retorna um coletor de mensagem de canal que entrega mensagens ao objeto de dados de URL ou de canal especificado.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Parse(String, String)

Extrai o URI do canal e o URI do objeto bem conhecido remoto da URL especificada.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a