Utilice la clase Message para buscar o recibir los mensajes de una cola, o bien para tener un control más preciso sobre las propiedades de los mensajes al enviarlos a la cola.
MessageQueue utiliza la clase Message al buscar o recibir los mensajes de las colas, ya que tanto MessageQueue.Peek como MessageQueue.Receive crean una nueva instancia de la clase Message y establecen sus propiedades. Las propiedades de sólo lectura de la clase Message se aplican a la recuperación de mensajes de una cola, mientas que las propiedades de lectura y escritura se aplican al envío y recuperación de mensajes. Cuando MessageQueue ejecuta el método Peek o recibe un mensaje de una cola, su propiedad MessageReadPropertyFilter determina qué propiedades del mensaje se recuperan.
El método Send de la clase MessageQueue permite especificar cualquier tipo de objeto para un mensaje que se esté enviando a dicha cola. Se puede utilizar la propiedad DefaultPropertiesToSend de la instancia de MessageQueue para especificar la configuración de los mensajes genéricos enviados a dicha cola. Los diferentes valores configurables incluyen el formateador, la etiqueta, el tipo de cifrado y la autenticación. También se pueden especificar valores para los miembros correspondientes de DefaultPropertiesToSend al coordinar nuestra aplicación de mensajería para que responda a los mensajes de confirmación e informe. El uso de una instancia de Message para enviar un mensaje a la cola proporciona la flexibilidad necesaria para obtener acceso y modificar muchas de estas propiedades, ya sea para un solo mensaje o mensaje a mensaje. Las propiedades de Message tienen prioridad sobre DefaultPropertiesToSend.
Los datos de los mensajes se almacenan en la propiedad Body y, en menor medida, en las propiedades AppSpecific y Extension. Cuando se cifran, serializan o deserializan los datos de un mensaje, sólo queda afectado el contenido de la propiedad Body.
El contenido de la propiedad Body se serializa al enviar el mensaje, mediante la propiedad Formatter especificada. El contenido serializado se encuentra en la propiedad BodyStream. También se puede establecer directamente la propiedad BodyStream, por ejemplo, para enviar un archivo como contenido de datos de un mensaje. Es posible cambiar las propiedades Body o Formatter en cualquier momento antes de enviar el mensaje, serializándose apropiadamente los datos al llamar a Send.
Las propiedades definidas por la propiedad MessageQueue.DefaultPropertiesToSend se aplican sólo a los mensajes que no son del tipo Message. Si se especifica la propiedad DefaultPropertiesToSend para un objeto MessageQueue, las propiedades de idéntico nombre de una instancia de Message enviada a dicha cola hacen que se pasen por alto estas propiedades predeterminadas.
Para obtener una lista con los valores de propiedad iniciales de una instancia de Message, vea el constructor Message.