Share via


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

  1. Ajoutez un bouton au formulaire, intitulé Envoyer, qui appelle les méthodes CreateQueue et SendMessageToQueue.

  2. 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