2
是否可以直接从队列中读取消息作为字符串(与从计算机查看MSMQ消息时看到的消息体相同管理MSC管理单元),以便我可以将它自己保存到数据库中?我希望能够在不丢失任何数据的情况下将其存储起来,并且我担心如果反序列化/序列化它,我可能会失去一些东西。如何从队列中读取MSMQ消息对象作为消息体的字符串
是否可以直接从队列中读取消息作为字符串(与从计算机查看MSMQ消息时看到的消息体相同管理MSC管理单元),以便我可以将它自己保存到数据库中?我希望能够在不丢失任何数据的情况下将其存储起来,并且我担心如果反序列化/序列化它,我可能会失去一些东西。如何从队列中读取MSMQ消息对象作为消息体的字符串
试试这个..
string QueueName = @".\private$\publishingQueue";
//note, you cannot use method exists on remote queues
if (MessageQueue.Exists(QueueName))
{
var queue = new MessageQueue(queueInfo.QueueName)
{
MessageReadPropertyFilter = new MessagePropertyFilter
{
ArrivedTime = true,
Body = true
}
};
var messages = queue.GetAllMessages();
var m = messages[0];
m.Formatter = new System.Messaging.XmlMessageFormatter(new String[] {});
StreamReader sr = new StreamReader(m.BodyStream);
string ms = "";
string line;
while (sr.Peek() >= 0)
{
ms += sr.ReadLine();
}
//ms now contains the message
}
你只关心保存邮件正文并没有其他消息属性? – 2011-01-28 01:40:53