Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase Message

 

Publicado: noviembre de 2016

Proporciona acceso a las propiedades necesarias para definir un mensaje de Message Queue Server.

Espacio de nombres:   System.Messaging
Ensamblado:  System.Messaging (en System.Messaging.dll)


public class Message : Component

NombreDescripción
System_CAPS_pubmethodMessage()

Inicializa una nueva instancia de la Message clase con un cuerpo vacío.

System_CAPS_pubmethodMessage(Object)

Inicializa una nueva instancia de la Message clase, utilizando el XmlMessageFormatter para serializar el objeto especificado en el cuerpo del mensaje.

System_CAPS_pubmethodMessage(Object, IMessageFormatter)

Inicializa una nueva instancia de la Message clase utilizando el formateador especificado para serializar el objeto especificado en el cuerpo del mensaje.

NombreDescripción
System_CAPS_pubpropertyAcknowledgeType

Obtiene o establece el tipo de mensaje de confirmación que se devuelven a la aplicación de envío.

System_CAPS_pubpropertyAcknowledgment

Obtiene la clasificación de confirmación que representa este mensaje.

System_CAPS_pubpropertyAdministrationQueue

Obtiene o establece la cola que recibe los mensajes de confirmación generados por Message Queue Server.

System_CAPS_pubpropertyAppSpecific

Obtiene o establece información adicional específica de la aplicación.

System_CAPS_pubpropertyArrivedTime

Obtiene el momento en que llegó el mensaje a la cola de destino.

System_CAPS_pubpropertyAttachSenderId

Obtiene o establece un valor que indica si el identificador del remitente se debe adjuntar al mensaje.

System_CAPS_pubpropertyAuthenticated

Obtiene un valor que indica si se autenticó el mensaje.

System_CAPS_pubpropertyAuthenticationProviderName

Obtiene o establece el nombre del proveedor criptográfico utilizado para generar la firma digital del mensaje.

System_CAPS_pubpropertyAuthenticationProviderType

Obtiene o establece el tipo de proveedor criptográfico utilizado para generar la firma digital del mensaje.

System_CAPS_pubpropertyBody

Obtiene o establece el contenido del mensaje.

System_CAPS_pubpropertyBodyStream

Obtiene o establece la información en el cuerpo del mensaje.

System_CAPS_pubpropertyBodyType

Obtiene o establece el tipo de datos que contiene el cuerpo del mensaje.

System_CAPS_protpropertyCanRaiseEvents

Obtiene un valor que indica si el componente puede provocar un evento.(Heredado de Component).

System_CAPS_pubpropertyConnectorType

Obtiene o establece un valor que indica que algunas propiedades de mensajes que normalmente establece Message Queue Server se establecieron por la aplicación emisora.

System_CAPS_pubpropertyContainer

Obtiene IContainer que contiene Component.(Heredado de Component).

System_CAPS_pubpropertyCorrelationId

Obtiene o establece el identificador de mensaje que utilizan los mensajes de confirmación, informe y respuesta para hacer referencia al mensaje original.

System_CAPS_protpropertyDesignMode

Obtiene un valor que indica si la Component está actualmente en modo de diseño.(Heredado de Component).

System_CAPS_pubpropertyDestinationQueue

Obtiene la cola de destino deseada para un mensaje.

System_CAPS_pubpropertyDestinationSymmetricKey

Obtiene o establece la clave simétrica utilizada para cifrar los mensajes cifrados por la aplicación o los mensajes enviados a colas externas.

System_CAPS_pubpropertyDigitalSignature

Obtiene o establece la firma digital que Message Queue Server utiliza para autenticar el mensaje.

System_CAPS_pubpropertyEncryptionAlgorithm

Obtiene o establece el algoritmo de cifrado utilizado para cifrar el cuerpo de un mensaje privado.

System_CAPS_protpropertyEvents

Obtiene la lista de controladores de eventos que se adjuntará a este Component.(Heredado de Component).

System_CAPS_pubpropertyExtension

Obtiene o establece información adicional, definida por la aplicación y asociada al mensaje.

System_CAPS_pubpropertyFormatter

Obtiene o establece al formateador utilizado para serializar o deserializar un objeto en el cuerpo del mensaje.

System_CAPS_pubpropertyHashAlgorithm

Obtiene o establece el algoritmo de hash que Message Queue Server usa cuando autentica un mensaje o al crear una firma digital para un mensaje.

System_CAPS_pubpropertyId

Obtiene el identificador del mensaje.

System_CAPS_pubpropertyIsFirstInTransaction

Obtiene un valor que indica si el mensaje fue el primer mensaje enviado en una transacción.

System_CAPS_pubpropertyIsLastInTransaction

Obtiene un valor que indica si el mensaje fue el último mensaje enviado en una transacción.

System_CAPS_pubpropertyLabel

Obtiene o establece una cadena Unicode definida por la aplicación que describe el mensaje.

System_CAPS_pubpropertyLookupId

Introducido en MSMQ 3.0. Obtiene el identificador de búsqueda del mensaje.

System_CAPS_pubpropertyMessageType

Obtiene el tipo de mensaje: Normal, Acknowledgment o Report.

System_CAPS_pubpropertyPriority

Obtiene o establece la prioridad del mensaje, que determina en qué punto de la cola se ubica el mensaje.

System_CAPS_pubpropertyRecoverable

Obtiene o establece un valor que indica si se garantiza el mensaje se entregue en caso de un problema de red o errores del equipo.

System_CAPS_pubpropertyResponseQueue

Obtiene o establece la cola que recibe los mensajes de respuesta generados por la aplicación.

System_CAPS_pubpropertySecurityContext

Obtiene o establece el contexto de seguridad para un mensaje.

System_CAPS_pubpropertySenderCertificate

Obtiene o establece el certificado de seguridad usado para autenticar mensajes.

System_CAPS_pubpropertySenderId

Obtiene el identificador del usuario remitente.

System_CAPS_pubpropertySenderVersion

Obtiene la versión de Message Queue Server utilizada para enviar el mensaje.

System_CAPS_pubpropertySentTime

Obtiene la fecha y hora del equipo de envío en las que el administrador de colas de origen envió el mensaje.

System_CAPS_pubpropertySite

Obtiene o establece la ISite de la Component.(Heredado de Component).

System_CAPS_pubpropertySourceMachine

Obtiene el equipo donde se originó el mensaje.

System_CAPS_pubpropertyTimeToBeReceived

Obtiene o establece la cantidad máxima de tiempo para el mensaje se recibe de la cola de destino.

System_CAPS_pubpropertyTimeToReachQueue

Obtiene o establece el límite máximo de tiempo para que el mensaje alcance la cola.

System_CAPS_pubpropertyTransactionId

Obtiene el identificador de la transacción de que el mensaje fue una parte.

System_CAPS_pubpropertyTransactionStatusQueue

Obtiene la cola de estado de transacción del equipo de origen.

System_CAPS_pubpropertyUseAuthentication

Obtiene o establece un valor que indica si el mensaje era (o debe) autenticado antes de enviarse.

System_CAPS_pubpropertyUseDeadLetterQueue

Obtiene o establece un valor que indica si se debe enviar una copia del mensaje que no se pudo entregar a una cola de mensajes no enviados.

System_CAPS_pubpropertyUseEncryption

Obtiene o establece un valor que indica si el mensaje debe ser privado.

System_CAPS_pubpropertyUseJournalQueue

Obtiene o establece un valor que indica si se debe mantener una copia del mensaje en un diario del equipo de origen.

System_CAPS_pubpropertyUseTracing

Obtiene o establece un valor que indica si se debe seguir un mensaje mientras se traslada a su cola de destino.

NombreDescripción
System_CAPS_pubmethodCreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar a un proxy que se utiliza para comunicarse con un objeto remoto.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodDispose()

Libera todos los recursos que usa Component.(Heredado de Component).

System_CAPS_protmethodDispose(Boolean)

Libera los recursos no administrados que usa Component y libera los recursos administrados de forma opcional.(Heredado de Component).

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Libera recursos no administrados y realiza otras operaciones de limpieza antes de que se reclame el elemento Component durante la recolección de elementos no usados.(Heredado de Component).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_protmethodGetService(Type)

Devuelve un objeto que representa el servicio suministrado por Component o por Container.(Heredado de Component).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodInitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_protmethodMemberwiseClone(Boolean)

Crea una copia superficial del elemento actual MarshalByRefObject objeto.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodToString()

Devuelve un String que contiene el nombre de la Component, si existe. Este método no se debe invalidar.(Heredado de Component).

NombreDescripción
System_CAPS_pubfieldSystem_CAPS_staticInfiniteTimeout

Especifica que no existe ningún tiempo de espera.

NombreDescripción
System_CAPS_pubeventDisposed

Se produce cuando el componente se elimina mediante una llamada a la Dispose (método).(Heredado de Component).

Utilice la Message clase para buscar o recibir mensajes de una cola o para tener un control preciso sobre las propiedades de mensaje al enviar un mensaje a una cola.

MessageQueue utiliza la Message clase cuando ejecuta el método Peek o recibe mensajes de las colas, porque tanto el MessageQueue.Peek y MessageQueue.Receive métodos crean una nueva instancia de la Message clase y establecer las propiedades de la instancia. El Message aplican propiedades de solo lectura de la clase para recuperar mensajes de una cola, mientras que las propiedades de lectura y escritura se aplican a enviar y recuperar mensajes. Cuando MessageQueue inspecciona o recibe un mensaje de una cola, su MessageReadPropertyFilter propiedad determina cuál de las propiedades del mensaje se recuperan.

La MessageQueue clase Send método le permite especificar cualquier tipo de objeto para un mensaje a dicha cola. Puede usar el MessageQueue la instancia DefaultPropertiesToSend propiedad para especificar la configuración de los mensajes genéricos enviados a la cola. Los tipos de configuración incluyen el formateador, etiqueta, cifrado y autenticación. También puede especificar valores para los DefaultPropertiesToSend miembros al coordinar nuestra aplicación de mensajería para responder a mensajes de confirmación e informe. Mediante un Message instancia para enviar un mensaje a la cola le ofrece la flexibilidad necesaria para tener acceso y modificar muchas de estas propiedades, para un solo mensaje o mensaje por mensaje. Message las propiedades tienen precedencia sobre DefaultPropertiesToSend.

Datos del mensaje se almacenan en la Body propiedad y en menor medida, la AppSpecific y Extension Propiedades. Cuando se cifra, se serializa o se deserializa, sólo el contenido de los datos del mensaje del Body propiedad se ven afectados.

El contenido de la Body se serializa la propiedad cuando se envía el mensaje, mediante la Formatter propiedad especificado. El contenido serializado se encuentra en la BodyStream propiedad. También puede establecer el BodyStream propiedad directamente, por ejemplo, para enviar un archivo como contenido de datos de un mensaje. Puede cambiar el Body o Formatter Propiedades en cualquier momento antes de enviar el mensaje y los datos se serializarán correctamente al llamar a Send.

Las propiedades definidas por el MessageQueue.DefaultPropertiesToSend propiedad se aplica sólo a los mensajes que no son de tipo Message. Si especifica la DefaultPropertiesToSend propiedad para un MessageQueue, el nombre idéntico propiedades en un Message instancia enviados a dicha cola hacen que se pasan por alto estas propiedades predeterminadas.

Para obtener una lista de valores de propiedad iniciales de una instancia de Message, consulte el Message constructor.

En el ejemplo de código siguiente se muestra el formato de un cuerpo del mensaje utilizando BinaryMessageFormatter.

using System;
using System.Messaging;
using System.Drawing;
using System.IO;

namespace MyProject
{


	/// <summary>
	/// Provides a container class for the example.
	/// </summary>
	public class MyNewQueue
	{

		//**************************************************
		// Provides an entry point into the application.
		//		 
		// This example sends and receives a message from
		// a queue.
		//**************************************************

		public static void Main()
		{
			// Create a new instance of the class.
			MyNewQueue myNewQueue = new MyNewQueue();

			// Create a queue on the local computer.
			CreateQueue(".\\myQueue");

			// Send a message to a queue.
			myNewQueue.SendMessage();

			// Receive a message from a queue.
			myNewQueue.ReceiveMessage();

			return;
		}

		//**************************************************
		// Creates a new queue.
		//**************************************************

		public static void CreateQueue(string queuePath)
		{
			try	
				{
				if(!MessageQueue.Exists(queuePath))
				{
					MessageQueue.Create(queuePath);
				}
				else
				{
					Console.WriteLine(queuePath + " already exists.");
				}
			}
			catch (MessageQueueException e)
			{
				Console.WriteLine(e.Message);
			}

		}

		//**************************************************
		// Sends an image to a queue, using the BinaryMessageFormatter.
		//**************************************************

		public void SendMessage()
		{
			try{

				// Create a new bitmap.
				// The file must be in the \bin\debug or \bin\retail folder, or
				// you must give a full path to its location.
				Image myImage = Bitmap.FromFile("SentImage.bmp");

				// Connect to a queue on the local computer.
				MessageQueue myQueue = new MessageQueue(".\\myQueue");

				Message myMessage = new Message(myImage, new BinaryMessageFormatter());

				// Send the image to the queue.
				myQueue.Send(myMessage);
			}
			catch(ArgumentException e)
			{
				Console.WriteLine(e.Message);

			}

			return;
		}


		//**************************************************
		// Receives a message containing an image.
		//**************************************************

		public  void ReceiveMessage()
		{

			try
			{

				// Connect to the a queue on the local computer.
				MessageQueue myQueue = new MessageQueue(".\\myQueue");

				// Set the formatter to indicate body contains an Order.
				myQueue.Formatter = new BinaryMessageFormatter();

				// Receive and format the message. 
				System.Messaging.Message myMessage = myQueue.Receive(); 
				Bitmap myImage = (Bitmap)myMessage.Body;

				// This will be saved in the \bin\debug or \bin\retail folder.
				myImage.Save("ReceivedImage.bmp",System.Drawing.Imaging.ImageFormat.Bmp);


			}

			catch (MessageQueueException)
			{
				// Handle Message Queuing exceptions.
			}

			// Handle invalid serialization format.
			catch (InvalidOperationException e)
			{
				Console.WriteLine(e.Message);
			}

			catch (IOException e)
			{
				// Handle file access exceptions.
			}

			// Catch other exceptions as necessary.

			return;
		}
	}
}

En el ejemplo de código siguiente se muestra el formato de un cuerpo del mensaje utilizando XmlMessageFormatter.

using System;
using System.Messaging;
using System.Drawing;
using System.IO;

namespace MyProject
{

	// The following example 
	// sends to a queue and receives from a queue.
	public class Order
	{
		public int orderId;
		public DateTime orderTime;
	};	

	/// <summary>
	/// Provides a container class for the example.
	/// </summary>
	public class MyNewQueue
	{

		//**************************************************
		// Provides an entry point into the application.
		//		 
		// This example sends and receives a message from
		// a queue.
		//**************************************************

		public static void Main()
		{
			// Create a new instance of the class.
			MyNewQueue myNewQueue = new MyNewQueue();

			// Create a queue on the local computer.
			CreateQueue(".\\myQueue");

			// Send a message to a queue.
			myNewQueue.SendMessage();

			// Receive a message from a queue.
			myNewQueue.ReceiveMessage();

			return;
		}

		//**************************************************
		// Creates a new queue.
		//**************************************************

		public static void CreateQueue(string queuePath)
		{
			try	
			{
				if(!MessageQueue.Exists(queuePath))
				{
					MessageQueue.Create(queuePath);
				}
				else
				{
					Console.WriteLine(queuePath + " already exists.");
				}
			}
			catch (MessageQueueException e)
			{
				Console.WriteLine(e.Message);
			}

		}

		//**************************************************
		// Sends an Order to a queue.
		//**************************************************

		public void SendMessage()
		{
			try
			{

				// Create a new order and set values.
				Order sentOrder = new Order();
				sentOrder.orderId = 3;
				sentOrder.orderTime = DateTime.Now;

				// Connect to a queue on the local computer.
				MessageQueue myQueue = new MessageQueue(".\\myQueue");



				// Create the new order.
				Message myMessage = new Message(sentOrder);

				// Send the order to the queue.
				myQueue.Send(myMessage);
			}
			catch(ArgumentException e)
			{
				Console.WriteLine(e.Message);

			}

			return;
		}


		//**************************************************
		// Receives a message containing an order.
		//**************************************************

		public  void ReceiveMessage()
		{
			// Connect to the a queue on the local computer.
			MessageQueue myQueue = new MessageQueue(".\\myQueue");

			// Set the formatter to indicate body contains an Order.
			myQueue.Formatter = new XmlMessageFormatter(new Type[]
				{typeof(MyProject.Order)});

			try
			{
				// Receive and format the message. 
				Message myMessage =	myQueue.Receive(); 
				Order myOrder = (Order)myMessage.Body;

				// Display message information.
				Console.WriteLine("Order ID: " + 
					myOrder.orderId.ToString());
				Console.WriteLine("Sent: " + 
					myOrder.orderTime.ToString());
			}

			catch (MessageQueueException)
			{
				// Handle Message Queuing exceptions.
			}

				// Handle invalid serialization format.
			catch (InvalidOperationException e)
			{
				Console.WriteLine(e.Message);
			}

			// Catch other exceptions as necessary.

			return;
		}
	}
}

.NET Framework
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: