XmlDocument.WriteTo schneidet die resultierende Datei ab

8

Versuch, ein XmlDocument in eine Datei zu serialisieren. Das XmlDocument ist ziemlich groß; Im Debugger kann ich jedoch sehen, dass die InnerXml-Eigenschaft den gesamten XML-Blob enthält - sie wird dort nicht abgeschnitten.

Hier ist der Code, der mein XmlDocument-Objekt in Datei schreibt:

%Vor%

Die Datei, die hier produziert wird, schreibt nur in die Zeile 5.760 - sie ist tatsächlich in der Mitte eines Tags abgeschnitten!

Hat jemand irgendwelche Ideen, warum dies hier abgeschnitten würde?

Update: Ich habe die Ursache des Problems gefunden. Ich habe den XML Text Writer nicht geschlossen, bevor ich den Dateistrom geschlossen habe! D'oh!

    
Brad Heller 08.06.2010, 22:55
quelle

4 Antworten

7

Der XmlTextWriter wurde nicht ordnungsgemäß geschlossen. Woops!

    
Brad Heller 05.07.2010, 23:10
quelle
4

Sie können versuchen, den Stream vor dem Schließen zu leeren. Wenn AutoFlush wahr ist, denke ich, dass es bei Close () trotzdem geleert wird, aber es könnte einen Versuch wert sein:

%Vor%     
Paul Kearney - pk 08.06.2010 23:39
quelle
1

Es ist weit weg ... nachdem die ursprüngliche Frage gestellt wurde, aber es zeigte sich auf Google-Ergebnissen.

Ich habe heute etwas ähnliches durchgemacht und wollte meine Antwort teilen (für die nächste unglückliche Seele, die sich dieser Verwirrung gegenübersieht).

Ich verwende einen StreamWriter (sw) mit einem MemoryStream (ms), um Daten im Speicher zu halten und dann in bestimmten Intervallen in einen Dateistrom (fs) zu übertragen.

So machte ich

%Vor%

Und dann wurde alles gesagt und getan

%Vor%

Problem war, dass ich den StreamWriter nicht zuerst in den MemoryStream gespült habe

Das Ändern dieses Problems hat mein Problem behoben.

%Vor%     
Tojamismis 21.03.2012 22:48
quelle
1

Ich habe heute mit diesem Problem konfrontiert, als der Code wie folgt war:

%Vor%

Das Problem wurde behoben, als ich es wie folgt änderte:

%Vor%

Ich hoffe, das ist nützlich für jemanden.

    
dev.bv 04.08.2014 11:01
quelle