这是我的代码:
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)时,它会出现一个异常,说“Root Element is missing”
答案 0 :(得分:5)
如果不关闭流,可以将Position属性设置为0以返回到开始,然后创建一个XmlReader来读回流,或者在尝试时使用XmlDocument.Load。
总结一下,删除xmlWriter.Close()然后调用xmlStream.Position = 0,然后调用xmlDoc.Load(xmlStream)
答案 1 :(得分:4)
不是一个流 - 但你可以获得数据。
MemoryStream.ToArray
即使在您关闭它之后也能正常工作。
答案 2 :(得分:1)
不,如果您想进一步访问基础流,则不应关闭XmlWriter,因为关闭它实际上意味着关闭基础流。完成后,您可以使用以下方式处理流:
xmlStream.Dispose();
答案 3 :(得分:1)
不,您不能再访问已处置(已关闭)的对象(流)。