Comment : utiliser MSMQ dans le .NET Compact Framework
Mise à jour : novembre 2007
La création d'applications .NET Compact Framework qui utilisent MSMQ (Microsoft Message Queuing) ressemble au processus utilisé dans le .NET Framework. Toutefois, Windows CE ne prend pas en charge toutes les fonctionnalités décrites dans MSMQ dans le .NET Compact Framework.
Les exemples de code suivants montrent comment créer une file d'attente de messages, envoyer un message à la file d'attente et recevoir un message de la file d'attente sur le même périphérique. Aucune connectivité réseau n'est requise. Une classe simple, Order, est utilisée pour créer des objets pour la mise en file d'attente de messages.
Ces exemples supposent que MSMQ a été installé sur le périphérique. Pour plus d'informations sur l'obtention du composant MSMQ, consultez MSMQ dans le .NET Compact Framework.
Pour définir la classe Order
Ajoutez la classe suivante à votre projet.
' 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
Pour créer la file d'attente de messages
Ajoutez la méthode suivante à votre formulaire.
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
Pour envoyer un message à la file d'attente
Ajoutez la méthode suivante à votre formulaire.
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
Pour recevoir le message de la file d'attente
Ajoutez la méthode suivante à votre formulaire.
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
Pour tester la mise en file d'attente de messages
Ajoutez un bouton au formulaire, intitulé Envoyer, qui appelle les méthodes CreateQueue et SendMessageToQueue.
Ajoutez un bouton au formulaire, intitulé Recevoir, qui appelle la méthode ReceiveMessageFromQueue.
Compilation du code
Cet exemple nécessite des références aux espaces de noms suivants :
Voir aussi
Tâches
Application de commandes de livres MSMQ, exemple
Concepts
MSMQ dans le .NET Compact Framework
.Rubriques Comment relatives au .NET Compact Framework
Concepts relatifs à la technologie de messagerie et aux files d'attente de messages