来自自定义正文xml的WCF CreateMessage

时间:2010-03-23 11:32:57

标签: c# wcf

我有以下代码:

string body = "<custom xml>";

XDocument doc = XDocument.Parse(body);

MemoryStream stream = new MemoryStream();
XmlWriter writer = XmlWriter.Create(stream);
if (writer != null)
{
  doc.Save(writer);
  writer.Flush();
  writer.Close();
}

stream.Position = 0;
XmlReader rd = XmlReader.Create(stream);

Message output = Message.CreateMessage(msg.Version, msg.Headers.Action, rd);
output.Headers.CopyHeadersFrom(msg);
output.Properties.CopyProperties(msg.Properties);

当我尝试使用该消息时,我收到以下错误:

  

十六进制值0x02,是无效字符。第1行,第2位。

知道为什么吗?我能做些什么来解决这个问题?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

string body = "<?xml version='1.0'?><custom></custom>";

首先,您经常需要<?xml version='1.0'?>标头,正如Marc G.已经提到的那样,您的<custom xml>不是有效的XML;首先,XML标签不能包含空格,其次打开的标签永远不会关闭。