WCF CreateMessage из пользовательского тела XML - PullRequest
1 голос
/ 23 марта 2010

У меня есть следующий код:

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 голосов
/ 23 марта 2010

Попробуйте что-то вроде этого:

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

Прежде всего, вам часто нужен заголовок <?xml version='1.0'?>, и, как уже упоминал Марк Г., ваш <custom xml> не является допустимым XML;во-первых, теги XML не могут содержать пробелов, а во-вторых, открытый тег никогда не закрывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...