IpcClientChannel Classe

Definição

Implementa um canal cliente para chamadas remotas que utiliza 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 seguinte 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 utiliza o seguinte objeto remoto.

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 um exemplo de servidor que expõe este objeto remotamente, veja IpcServerChannel.

Observações

Importante

Chamar métodos dessa classe com dados não confiáveis é um risco de segurança. Chame os métodos dessa classe somente com dados confiáveis. Para obter mais informações, consulte Validar todas as informações inseridas.

Os canais são utilizados pela infraestrutura remota do .NET Framework para transportar chamadas remotas. Quando um cliente chama um objeto remoto, a chamada é serializada numa mensagem enviada por um canal cliente e recebida por um canal servidor. Após a receção da mensagem, esta é desserializada e processada. Quaisquer valores devolvidos são transmitidos pelo canal do servidor e recebidos pelo canal cliente.

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

Para realizar um processamento adicional de mensagens do lado do cliente, pode especificar uma implementação da IClientChannelSinkProvider interface através da qual todas as mensagens processadas pelo IpcClientChannel objeto serão passadas.

Por defeito, a IpcClientChannel classe utiliza 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, seja num ficheiro de configuração (invocando o método estático RemotingConfiguration.Configure ) ou programaticamente (passando uma IDictionary coleção ao IpcClientChannel construtor). Para uma lista destas propriedades de configuração, consulte a documentação do IpcClientChannel construtor.

Construtores

Name Description
IpcClientChannel()

Inicializa uma nova instância da IpcServerChannel classe.

IpcClientChannel(IDictionary, IClientChannelSinkProvider)

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

IpcClientChannel(String, IClientChannelSinkProvider)

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

Propriedades

Name Description
ChannelName

Recebe o nome do canal atual.

ChannelPriority

Recebe a prioridade do canal atual.

IsSecured

Recebe ou define um valor booleano que indica se o canal atual é seguro.

Métodos

Name Description
CreateMessageSink(String, Object, String)

Devolve um dissipador de mensagens de canal que entrega mensagens para a URL especificada ou objeto de dados de canal.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Parse(String, String)

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

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a