从内存流加载Xml有问题



下面是我的代码:

MemoryStream xmlStream = new MemoryStream();
XmlDocument xmlDoc = new XmlDocument();
XmlWriter xmlWriter = XmlWriter.Create(xmlStream);
//Add some elements and attributes.
xmlWriter.WriterEndDocument();
xmlWriter.Flush();
xmlWriter.Close();

好的,现在我已经关闭了XmlWriter,是否有任何方法可以再次访问XmlStream ?

如果我不关闭,然后当我想使用xmlDoc.Load(xmlStream)它给出一个异常,说"根元素丢失"

如果您不关闭流,您可以将Position属性设置为0以返回到开始,然后创建XmlReader来读取流或使用XmlDocument。按你想要的加载。

总结,删除xmlWriter.Close(),然后调用xmlStream。Position = 0,然后调用xmlDoc.Load(xmlStream)

不作为流-但您可以获得数据。

MemoryStream.ToArray即使在你关闭它后也能工作

不,如果您想进一步访问底层流,您不应该关闭XmlWriter,因为关闭它实际上意味着关闭底层流。您可以在使用完流后使用:

来处理它。
xmlStream.Dispose();

不能再访问已处置(关闭)对象(流)

相关内容

  • 没有找到相关文章