Como criar um formatador de mensagem personalizada usando translation from VPE for Csharp Visual

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 310683
Este artigo se refere ao seguinte namespace Microsoft .NET Framework Class Library:
  • System.Messaging

NESTA TAREFA

Sumário
Este artigo passo a passo mostra como usar translation from VPE for Csharp Visual para criar um formatador de mensagem personalizada simples.

O namespace System.Messaging fornece classes que permitem que você se conectar a filas de mensagens, mensagens, enviar e receber ou inspecionar mensagens das filas. Quando você envia uma mensagem para a fila, objetos são serializados, o formatador de mensagem no corpo da mensagem. O namespace System.Messaging inclui os três formatadores seguintes:
  • XmlMessageFormatter (padrão)
  • BinaryMessageFormatter
  • ActiveXMessageFormatter
Em determinadas situações, talvez você precise desenvolver um formatador de mensagem personalizada que pode serializar seqüências de caracteres no corpo da mensagem e desserializar seqüências de caracteres quando mensagens são lidos da fila.

Para criar um formatador de mensagem personalizada, você deve implementar a interface IMessageFormatter , que está incluída no namespace System.Messaging . Essa interface especifica três métodos a seguir:
  • gravar
  • leitura
  • CanRead
Como essa interface implementa a interface ICloneable , o método Clone também deve ser implementado.

back to the top

Declaração de classe

Neste exemplo, a classe de formatador é chamada MyFormatter e é declarada da seguinte maneira:
using System;using System.IO;using System.Text;using System.Messaging;public class MyFormatter : IMessageFormatter{	public MyFormatter()	{		//The constructor can remain empty.	}}				
Observe que uma referência de projeto para System.Messaging.DLL é necessária. Para adicionar essa referência no Visual Studio. NET, clique com o botão direito do mouse em References e selecione Add Reference .

back to the top

Método de gravação

O método Write serializa os objetos no corpo da mensagem quando a mensagem é enviada para a fila. Neste exemplo, o formatador obtém uma cadeia de caracteres e serializa-lo usando a codificação UTF8. O método de gravação é implementado da seguinte maneira:
public void Write (System.Messaging.Message msg, object obj){	//Declare a buffer.	byte[] buff;	//Place the string into the buffer using UTF8 encoding.	buff = Encoding.UTF8.GetBytes (obj.ToString());	//Create a new MemoryStream object passing the buffer.	Stream stm = new MemoryStream(buff);	//Assign the stream to the message's BodyStream property.	msg.BodyStream = stm;} 				
back to the top

Método de leitura

O método Read desserializa o corpo de mensagem quando você lê ou espiada a mensagem da fila. Essencialmente, o método Read inverte o processo que é feito com o método de gravação .
public object Read (System.Messaging.Message msg){	//Obtain the BodyStream for the message.	Stream stm = msg.BodyStream;	//Create a StreamReader object used for reading from the stream.	StreamReader reader = new StreamReader (stm);	//Return the string read from the stream.	//StreamReader.ReadToEnd returns a string.	return reader.ReadToEnd();}				
back to the top

Método CanRead

O método CanRead tenta determinar se o formatador pode manipular a mensagem que é passada para ele. Por questões de brevidade, o formatador desta pressupõe que o corpo da mensagem é uma seqüência de caracteres (todas as mensagens na fila foram enviadas usando este formatador) e retorna verdadeiro.
public bool CanRead (System.Messaging.Message msg){	return true;}				
back to the top

O método Clone

O método Clone retorna uma nova instância do formatador.
public object Clone(){	return new MyFormatter();}				
back to the top

Use o formatador

Depois que o formatador for implementado, você pode definir a propriedade formatador do objeto MessageQueue para uma nova instância do formatador desta maneira:
//Open an existing public queue called Test.	MessageQueue msgQueue = new MessageQueue (@".\test");//Set the Formatter property.msgQueue.Formatter = new MyFormatter();//Send a test message.msgQueue.Send ("Test string message");				
back to the top
MSMQ

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 310683 - Última Revisão: 12/11/2006 20:59:57 - Revisão: 1.7

Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# 2005 Express Edition

  • kbmt kbbcl kbhowtomaster kbsample KB310683 KbMtpt
Comentários