Cómo: Utilizar MSMQ en .NET Compact Framework
Actualización: noviembre 2007
El proceso de creación de aplicaciones de .NET Compact Framework que utilizan Message Queue Server (conocido también como MSMQ) es parecido al proceso que se utiliza en .NET Framework. Sin embargo, Windows CE no admite todas las características descritas en MSMQ en .NET Compact Framework.
En los códigos de ejemplo siguientes se muestra cómo crear una cola de mensajes, enviar un mensaje a la cola y recibir un mensaje desde ésta, y todo ello en el mismo dispositivo. No se requiere ninguna conectividad de red. Se utiliza una clase simple, Order, para crear los objetos de Message Queue Server.
En estos ejemplos se supone que se ha instalado Message Queue Server en el dispositivo. Para obtener más información sobre cómo obtener el componente Message Queuing, vea MSMQ en .NET Compact Framework.
Para definir la clase Order
Agregue la clase siguiente al proyecto.
' This class represents an object that ' is sent to and received from the queue. Public Class Order Dim ID As Integer Dim DTime As DateTime Public Property orderID() As Integer Get Return Me.ID End Get Set(ByVal value As Integer) Me.ID = value End Set End Property Public Property orderTime() As DateTime Get Return Me.DTime End Get Set(ByVal value As DateTime) Me.DTime = value End Set End Property End Class
Para crear la cola de mensajes
Agregue el método siguiente al formulario.
Private Sub CreateQueue() ' Determine whether the queue exists. If Not MessageQueue.Exists(QPath) Then Try ' Create the queue if it does not exist. myQ = MessageQueue.Create(QPath) MessageBox.Show("Queue Created") Catch ex As Exception MessageBox.Show(ex.Message) End Try Else MessageBox.Show("Queue Exists") End If End Sub
Para enviar un mensaje a la cola
Agregue el método siguiente al formulario.
Private Sub SendMessageToQueue() ' Create a new order and set values. Dim sendOrder As New Order() sendOrder.orderID = 23123 sendOrder.orderTime = DateTime.Now Try myQ.Send(sendOrder) MessageBox.Show("Message Sent") Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
Para recibir el mensaje desde la cola
Agregue el método siguiente al formulario.
Private Sub ReceiveMessageFromQueue() ' Connect to the a queue on the device. myQ = New MessageQueue(QPath) ' Set the formatter to indicate the body contains an Order. Dim targetTypes() As Type targetTypes = New Type() {GetType(Order)} myQ.Formatter = New XmlMessageFormatter(targetTypes) Try ' Receive and format the message. Dim myMessage As Message = myQ.Receive() Dim myOrder As Order = CType(myMessage.Body, Order) ' Display message information. MessageBox.Show("Order ID: " & _ myOrder.orderID.ToString() & _ Chr(10) & "Sent: " & myOrder.orderTime.ToString()) Catch m As MessageQueueException ' Handle Message Queuing exceptions. MessageBox.Show(m.Message) Catch e As InvalidOperationException ' Handle invalid serialization format. MessageBox.Show(e.Message) End Try End Sub
Para probar la cola de mensajes
Agregue un botón al formulario, con la etiqueta Enviar, que llame a los métodos CreateQueue y SendMessageToQueue.
Agregue un botón al formulario, con la etiqueta Recibir, que llame al método ReceiveMessageFromQueue.
Compilar el código
Para este ejemplo se requieren referencias a los siguientes espacios de nombres:
Vea también
Tareas
Ejemplo MSMQ Book Order Application
Conceptos
MSMQ en .NET Compact Framework
.Temas "Cómo..." de .NET Compact Framework
Información básica sobre colas de mensajes y tecnología de mensajería