【发布时间】:2020-12-12 15:06:17
【问题描述】:
我需要向 MSMQ 发送一个 XMLDocument 对象。我没有将其反序列化为的类(xml 可能会有所不同)。默认格式化程序 XMLMessageFormatter 将“漂亮地打印”对象。这会导致一个问题,因为
<text></text>
将转换为
<text>
</text>
(即 cr + 空格)。该消息正在由使用默认 XMLMessageFormatter 的进程读取,并且在节点中有数据时没有问题。然而,这是一个问题,因为进程(我无法控制)会将这些新字符解释为数据并导致错误。
我知道我可以编写一些代码来使用 IsEmpty = true 将它们转换为<text />,但我想要一个完全不改变对象的解决方案。
BinaryMessageFormatter 将在数据前面加上 BOM 数据(接收方不希望这样),ActiveXMessageFormatter 会将字符串加倍字节(再次导致另一端出现问题)。
我宁愿避免编写自定义消息格式化程序。我尝试在 XMLMessageFormatter 中包含一些选项,但效果不大。任何想法都将不胜感激。
【问题讨论】: