Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O envio e recebimento de dados binários não processados com o Windows Communication Foundation (WCF) é configurado usando ByteStreamMessageEncodingBindingElement.
Arquitetura do codificador de mensagens de fluxo de bytes
O codificador de mensagem binária usado pelo WCF não tem nenhum recurso para processar, validar ou identificar os dados binários subjacentes na mensagem. O pacote de dados é codificado em XML, enviado, recebido e decodificado. O codificador processa os dados depois de serem passados para o transporte e antes que a mensagem seja enviada para a fila de mensagens. Funcionalmente, o codificador binário encapsula os dados da mensagem em <binary> elementos para envio e remove os elementos depois que a mensagem é recebida.
Usando o codificador de mensagens de fluxo de bytes
O exemplo a seguir mostra um contrato de serviço que implementa o codificador de mensagens de fluxo de bytes.
[OperationContract]
Void Myfunction(Stream stream);
O exemplo a seguir mostra o serviço que está sendo invocado.
proxy.MyFunction(stream);
No caso de usar um serviço que implementa uma infraestrutura de mensagem (como um roteador), a mensagem é processada sem inspecionar, validar ou interagir de outra forma com a mensagem, conforme mostrado no exemplo a seguir.
[OperationContract]
void ProcessMessage(Message message) ;
Cenários
O Byte Stream Encoder é útil nos seguintes cenários.
Transferência de uma imagem JPEG entre computadores usando WCF. Nesse cenário, a imagem chegará através do transporte de uma fonte externa, e os dados enviados serão os bytes brutos que compõem a imagem. Um serviço receberá os dados binários e exibirá a imagem.
Ler informações de uma fila de mensagens e processá-las. A mensagem será lida de um gerenciador de filas de mensagens e passada para o canal de fila de mensagens a ser tratada. O canal de fila de mensagens atuará como um gerenciador de filas na pilha de canais WCF.
No caso de enviar uma mensagem através de um canal de fila de mensagens, o remetente não tem controle sobre os bytes recebidos do gerenciador de filas. Se o processo de receção não tiver capacidade para ler bytes brutos, a mensagem será recebida como mal formatada e não será processada; Supõe-se que o processo de recebimento terá a capacidade de traduzir os bytes recebidos de volta para um formato utilizável.