다음을 통해 공유


방법: .NET Compact Framework에서 MSMQ 사용

업데이트: 2007년 11월

MSMQ(메시지 큐)를 사용하는 .NET Compact Framework 응용 프로그램을 만드는 작업은 .NET Framework에서 사용되는 프로세스와 비슷합니다. 그러나 Windows CE에서 .NET Compact Framework의 MSMQ에 설명된 모든 기능을 지원하는 것은 아닙니다.

다음 코드 예제에서는 동일한 장치에서 메시지 큐를 만들고 큐에 메시지를 보내고 큐에서 메시지를 받는 방법을 보여 줍니다. 여기서 네트워크 연결은 필요하지 않습니다. 메시지 큐를 위한 개체를 만드는 데 단순 클래스 Order가 사용됩니다.

이러한 예제에서는 장치에 메시지 큐가 설치되어 있다고 가정합니다. 메시지 큐 구성 요소를 구하는 방법에 대한 자세한 내용은 .NET Compact Framework의 MSMQ를 참조하십시오.

Order 클래스를 정의하려면

  • 프로젝트에 다음 클래스를 추가합니다.

    ' 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
    

메시지 큐를 만들려면

  • 폼에 다음 메서드를 추가합니다.

    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
    

큐에 메시지를 보내려면

  • 폼에 다음 메서드를 추가합니다.

    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
    

큐에서 메시지를 받으려면

  • 폼에 다음 메서드를 추가합니다.

    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
    

메시지 큐를 테스트하려면

  1. CreateQueue 및 SendMessageToQueue 메서드를 호출하며 보내기라는 레이블이 붙은 단추를 폼에 추가합니다.

  2. ReceiveMessageFromQueue 메서드를 호출하며 받기라는 레이블이 붙은 단추를 폼에 추가합니다.

코드 컴파일

이 예제에는 다음과 같은 네임스페이스에 대한 참조가 필요합니다.

참고 항목

작업

MSMQ 책 주문 응용 프로그램 샘플

개념

.NET Compact Framework의 MSMQ

.NET Compact Framework 방법 항목

메시지 큐 및 메시징 기술 배경