从 MSMQ 获取正文内容
Getting Body content from MSMQ
我尝试获取 MSMQ - 队列中项目的内容。
当我使用 QueueExplorer 查看该条目时,正文内容就像
[{"$type":"MyProject.MyClass.MyMethod, Messages","CustomerDecision":0,"OrderReferenceoId":"4fdb6be2-bfde-42b0-93fd-47058a326a24"}]
当我尝试使用以下代码阅读内容时,正文中只包含奇怪的废话,主要是 [=20=][=20=] 等:
message.Formatter = new XmlMessageFormatter();
var reader = new StreamReader(message.BodyStream);
var msgBody = reader.ReadToEnd();
(消息类型为 System.Messaging.Message)
这是一个编码问题。结果看起来像随机垃圾,但只是一个 unicode 字符集。以下解决了问题:
message.Formatter = new BinaryMessageFormatter();
var reader = new StreamReader(message.BodyStream, Encoding.Unicode);
var msgBody = reader.ReadToEnd();
我尝试获取 MSMQ - 队列中项目的内容。
当我使用 QueueExplorer 查看该条目时,正文内容就像
[{"$type":"MyProject.MyClass.MyMethod, Messages","CustomerDecision":0,"OrderReferenceoId":"4fdb6be2-bfde-42b0-93fd-47058a326a24"}]
当我尝试使用以下代码阅读内容时,正文中只包含奇怪的废话,主要是 [=20=][=20=] 等:
message.Formatter = new XmlMessageFormatter();
var reader = new StreamReader(message.BodyStream);
var msgBody = reader.ReadToEnd();
(消息类型为 System.Messaging.Message)
这是一个编码问题。结果看起来像随机垃圾,但只是一个 unicode 字符集。以下解决了问题:
message.Formatter = new BinaryMessageFormatter();
var reader = new StreamReader(message.BodyStream, Encoding.Unicode);
var msgBody = reader.ReadToEnd();