unable to read serialzed data as message body in msmq c# 3.0

Posted by ltech on Stack Overflow See other posts from Stack Overflow or by ltech
Published on 2010-04-14T11:39:28Z Indexed on 2010/04/14 11:43 UTC
Read the original article Hit count: 539

Filed under:

This is my method to send message to a private Q

using (MessageQueue msgQ = new MessageQueue(MessageQueueName))
        {
            using (System.Messaging.Message newMessage = new System.Messaging.Message(MessageBody,
                new System.Messaging.ActiveXMessageFormatter()))
            {
                newMessage.Label = MessageLabel;
                newMessage.Priority = Priority;
                msgQ.Send(newMessage);
            }

        }

I have an order object which i serialize and send as message body. The serialized object is

<?xml version="1.0"?>
<OrderInfo>
    <OrderID>11111</OrderID>
    <OrderDetails>
        <LineItem>
            <ProductDetails>
                <Name>qwqwqw</Name>
                <Manufacturer>asasas</Manufacturer>
                <UPC>12222222222</UPC>
                <sku>2132</sku>
                <Price>12.21</Price>
            </ProductDetails>
            <Quantity>1</Quantity>
        </LineItem>
    </OrderDetails>
</OrderInfo>

This is my method to receive that message in a windows service

 void queue_ReceiveCompleted(object sender, ReceiveCompletedEventArgs asyncResult)
{
    // Connect to the queue.
    MessageQueue mq = (MessageQueue)sender;

    // End the asynchronous Receive operation.
    Message m = mq.EndReceive(asyncResult.AsyncResult);

    m.Formatter = new System.Messaging.ActiveXMessageFormatter()

    //Get Filedata from body
    OrdrInfo qMessage = (OrdrInfo)XMLUtil.Deserialize(m.Body.ToString(), typeof(OrdrInfo));

}

when I try to look at m.Body in quickwatch this is what it states

m.Body.Message = Cannot find a formatter capable of reading this message.

m.Body.StackTrace = at System.Messaging.Message.get_Body()

© Stack Overflow or respective owner

Related posts about c#3.0