"Root element not found" - when reading memory stream
.net, c#, xml
Solution
Yes - you're saving to the memory stream, leaving it at the end. You need to "rewind" it with:
ms.Position = 0;
just before you create the `StreamReader`:
xm.Serialize(ms, _bugs);
ms.Position = 0;
StreamReader sr = new StreamReader(ms);
string str = sr.ReadToEnd();
However, you then need to rewind it again before you load into the `XmlDocument` unless you remove those last two lines, which I suspect were just for debugging. Just for good measure, let's close the memory stream as well when we're done with it:
using (MemoryStream stream = new MemoryStream())
{
XmlSerializer serializer = new XmlSerializer(typeof(List<BugWrapper>));
seralizer.Serialize(stream, _bugs);
stream.Position = 0;
XmlDocument doc = new XmlDocument();
doc.Load(stream);
}
Problem
I have a class that i store in a list. I serialize it ... ``` XmlDocument xd = new XmlDocument(); MemoryStream ms = new MemoryStream(); XmlSerializer xm = new XmlSerializer(typeof(List<BugWrapper>)); xm.Serialize(ms, _bugs); StreamReader sr = new StreamReader(ms); string str = sr.ReadToEnd(); xd.Load(ms); ``` I looked into str and found it to be empty, the collection however has an object. Any ideas into why this happens?