XmlDocument. WriteTo усекает результирующий файл

Попытка сериализировать XmlDocument в файл. XmlDocument является довольно крупным; однако, в отладчике I видят, что свойство InnerXml имеет весь блоб XML в нем - это не является усеченным там.

Вот код, который пишет мой объект XMLDocument в файл:

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

Файл это производится здесь только, выписывает к строке как 5 760 - это является на самом деле усеченным посреди тега!

У кого-либо есть какие-либо идеи, почему это усекло бы здесь?

Обновление: Я нашел источник проблемы. Я не закрывал Класс для записи текста XML прежде, чем закрыть поток файла! D'oh!

8
задан Brad Heller 9 June 2010 в 16:58
поделиться

2 ответа

XmlTextWriter не был закрыт должным образом. Ой!

7
ответ дан 5 December 2019 в 12:56
поделиться

Вы можете попробовать промыть поток перед закрытием. Если AutoFlush равен true, я думаю, он все равно будет промыт при Close(), но попробовать стоит:

// 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(); 
4
ответ дан 5 December 2019 в 12:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: