MSMQ。显示消息正文

MSMQ. Displaying message body

我遇到了显示邮件正文的问题。我使用 C# 将测试消息(使用 XmlFormatter)发送到队列(我有 Windows 7)。

如何从邮件正文预览中删除十六进制?

我发现了一个有趣的时刻:如果正文少于 612 字节 - xml 显示正常,但如果正文多于 612 字节 - 显示为十六进制。

我不能使用 BinaryFormatter,因为我需要在消息 属性(正文)中显示清楚 xml。 (如果使用 BinaryFormatter,也会显示十六进制)。 我尝试创建自定义 (TxtFormatter) 格式化程序 - 也显示了十六进制。

我找到了解决方案。只需要使用 ActiveXMessageFormatter

如果您在传递非 XML 字符串时使用 XmlMessageFormatter(),您应该确保以下几点:

  1. 如果消息是对象,请确保它具有属性 [Serializable]。否则,消息正文将是十六进制格式。
  2. 如果在 XSD(XML 架构定义)文件中定义,请确保生成的序列化对象属性正确映射并具有有效值。

或者您可以使用 MSMQ Studio 查看 MSMQ 消息。 https://msmq-studio.com