j'ai une classe comme ceci:XmlDocument.Load (xml) génère pas de racine erreur Élément de XmlSerializer Code sérialisé
[XmlRoot"MyMessageType")]
public class MyMessageType : BaseMessageType
{
[XmlElement("MessageId")]
//Property for MessageId
...
<snip>
//end properties.
}
Cette classe contient une méthode statique pour créer une instance XmlDocument pour passer à un serveur BizTalk. Comme si:
public static XmlDocument GetMyMessageType(string input1, string input2 ...)
GetMyMessageType
crée une instance de MyMessageType, puis appelle le code suivant:
XmlSerializer outSer = new XmlSerializer(instance.GetType());
using (MemoryStream mem = new MemoryStream())
using (XmlWriter _xWrite = XmlWriter.Create(mem))
{
outSer.Serialize(_xWrite, instance);
XmlDocument outDoc = new XmlDocument();
outDoc.Load(XmlReader.Create(mem));
return outDoc;
}
Lorsque je tente d'exécuter ce code, je reçois un XmlException
"L'élément racine est manquant." Lorsque je modifie le code pour le sortir dans un fichier de test, j'obtiens un document XML bien formé. Quelqu'un peut-il me dire pourquoi je serais capable de sortir dans un fichier, mais pas en tant que XmlDocument?
Ok ... maintenant je me sens comme un idiot. J'ai regardé ça toute la journée. – AllenG
@AllenG - voir aussi la mise à jour re 'StringWriter' –