8
votes

Xmldocument.writeto tronque le fichier résultant

essayer de sérialiser un xmldocument à déposer. Le xmldocument est plutôt grand; Cependant, dans le débogueur, je peux voir que la propriété InnerXML a tout le XML BLOB. Ce n'est pas tronqué là-bas.

Voici le code qui écrit mon objet XMLDOCUPUMUME au fichier: P>

// Write that string to a file.
var fileStream = new FileStream("AdditionalData.xml", FileMode.OpenOrCreate, FileAccess.Write);
xmlDocument.WriteTo(new XmlTextWriter(fileStream, Encoding.UTF8) {Formatting = Formatting.Indented});
fileStream.Close();


0 commentaires

4 Réponses :


4
votes

Vous pouvez essayer de rincer le flux avant de fermer. Si Autoflush est vrai, je pense que cela se fait bouffer () de toute façon, mais cela vaut peut-être une prise de vue:

// Write that string to a file. 
var fileStream = new FileStream("AdditionalData.xml", FileMode.OpenOrCreate, FileAccess.Write); 
xmlDocument.WriteTo(new XmlTextWriter(fileStream, Encoding.UTF8) {Formatting = Formatting.Indented}); 
fileStream.Flush();
fileStream.Close(); 


1 commentaires

Hey Paul, merci pour la suggestion. J'avais en fait pensé à cela (désolé, auriez dû appeler cela dans le post original) mais j'ai le même résultat. De même, j'ai essayé de changer le codage, pensant que cela pourrait être une sorte de problème là-bas, en vain. Toute autre idée?



7
votes

Le XMLTextWriter n'a pas été fermé correctement. Woops!


1 commentaires

Une règle simple à suivre: "Si c'est jetable, une personne quelque part doit le disposer" ( disposer sur les flux et les écrivains affleurera et fermera).



1
votes

C'est un moyen terrestre ... après la question de la question initiale, mais elle s'est produite sur Google Résultats.

J'ai traversé quelque chose de similaire aujourd'hui et je voulais partager ma réponse (pour la prochaine âme malheureuse qui fait face à cette confusion )) Donc je faisais xxx

et après tout a été dit et fait xxx

problème était que je n'étais pas rinçage Le streamwriter au MemoryStream d'abord

altérer à cette question résolue mon problème. xxx


0 commentaires

1
votes

J'ai fait face à ce problème aujourd'hui lorsque le code était aussi ci-dessous:

using (XmlTextWriter writer = new XmlTextWriter("IdP.xml", null))
{
    writer.Formatting = Formatting.Indented;
    xmlElement.WriteTo(writer);
}


0 commentaires