Чтение сообщений MSMQ в необработанном XML

1

Я пытаюсь прочитать необработанный XML сообщения MSMQ и сохранить его в XML файле. Например, сообщение MSMQ с телом:

<?xml version="1.0"?>
<string>Hello World! I am message #4</string>

Я хотел бы взять эти точные строки xml и сохранить их в файле message.xml.

У меня есть сообщение, как показано ниже:

msg = queue.PeekById(enumerator.Current.Id);
                            msg.Formatter = new XmlMessageFormatter(new String[] { "System.String,mscorlib" });
                            System.IO.File.WriteAllText(dirPath + @"\" + msg.Label.Replace(@"\","").Replace(@".","") + enumerator.Current.Id.Replace(@"\","").Replace(@".","") + "_" + DateTime.Now.ToString("MMddyyyyhhmmss") + ".xml", msg.Body.ToString());
                            queue.ReceiveById(enumerator.Current.Id);
                            logEntry("*-Received Message with Id " + msg.Id + " and Label " + msg.Label);

Но это только тянет текст "Hello World! Я сообщение № 4", и я хочу полный xml.

  • 0
    Поскольку вы используете xmlmessageformatter, вы пробовали другой форматтер?
  • 0
    @alsafoo Какой форматер даст мне необработанный XML из сообщений?
Теги:
msmq

1 ответ

2
Лучший ответ

Попробуй это:

msg.Formatter = new ActiveXMessageFormatter();
reader = new StreamReader(msg.BodyStream);

var msgBody = reader.ReadToEnd(); // This gets the actual message as text

Formatters не обязательно должны быть симметричными - у вас могут быть разные форматы на обоих концах очереди.

Отсюда - http://andypiper.co.uk/2006/03/31/receiving-plain-text-messages-in-msmq/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню