从MSMQ获取正文内容

时间:2015-01-09 11:35:55

标签: c# msmq

我尝试在MSMQ - Queue中获取项目的内容。

当我使用QueueExplorer查看该条目时,正文内容就像

[{"$type":"MyProject.MyClass.MyMethod, Messages","CustomerDecision":0,"OrderReferenceoId":"4fdb6be2-bfde-42b0-93fd-47058a326a24"}]

当我尝试使用以下代码阅读内容时,正文只包含奇怪的废话,主要是\ 0 \ 0等:

message.Formatter = new XmlMessageFormatter(); 
var reader = new StreamReader(message.BodyStream);
var msgBody = reader.ReadToEnd();

(消息的类型为System.Messaging.Message)

1 个答案:

答案 0 :(得分:1)

这是一个编码问题。结果看起来像随机垃圾,但只是一个unicode角色。以下解决了这个问题:

message.Formatter = new BinaryMessageFormatter();
var reader = new StreamReader(message.BodyStream, Encoding.Unicode);
var msgBody = reader.ReadToEnd();