【发布时间】:2018-03-21 13:05:35
【问题描述】:
我正在编写一个使用 MSMQ 的应用程序,但遇到了一个与 XML 声明标记的编码属性有关的问题。
我正在构造如下消息:
string xmlmsg = reqText.Text;
XmlDocument xdoc = new XmlDocument();
xdoc.Load(new StringReader(xmlmsg));
xdoc.InsertBefore(xdoc.CreateXmlDeclaration("1.0", "UTF-8", "yes"), xdoc.DocumentElement);
Message _msg = new Message();
_msg.BodyStream = new MemoryStream(Encoding.ASCII.GetBytes(xdoc.OuterXml));
reqQueue.Send(_msg, "XML Request");
xdoc.OuterXml 的控制台输出显示包含编码:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
但是当我通过 MSMQ 发送消息时,编码属性被删除了。
<?xml version="1.0" standalone="yes"?>
我在这里错过了什么?
【问题讨论】:
-
Message.Formatter 属性很重要。默认是 XmlMessageFormatter,它肯定对 body 应该如何编码有自己的想法。
标签: c# .net msmq windows-server-2008-r2