我尝试在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)
答案 0 :(得分:1)
这是一个编码问题。结果看起来像随机垃圾,但只是一个unicode角色。以下解决了这个问题:
message.Formatter = new BinaryMessageFormatter();
var reader = new StreamReader(message.BodyStream, Encoding.Unicode);
var msgBody = reader.ReadToEnd();