2010-03-23 4 views
1

je le code suivant:WCF CreateMessage de xml corps personnalisé

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); 

Lorsque je tente d'utiliser le message que je reçois l'erreur suivante:

hexadecimal value 0x02, is an invalid character. Line 1, position 2.

Toute idée pourquoi? Et ce que je peux faire pour réparer ça?

+2

Eh bien, '' n'est pas bien formé xml fort starters? –

Répondre

0

Essayez quelque chose comme ceci:

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

Tout d'abord, vous avez besoin souvent l'en-tête <?xml version='1.0'?>, et comme Marc G. déjà mentionné, votre <custom xml> n'est pas XML valide; tout d'abord, les balises XML ne peuvent pas contenir d'espaces, et en second lieu, la balise ouverte n'est jamais fermée.

+0

Merci pour la réponse. Ignorer le contenu xml Je viens d'ajouter du contenu fictif pour rendre le message plus court. Le XML est valide et le problème n'est pas le XML. Rappelez-vous que c'est le xml qui est inséré dans le corps de l'enveloppe. Le n'est pas requis. – Cecil

Questions connexes