Given an XDocument instance, how can I easily get a TextReader that represents that instance?
The best I've been able to come up with is something like this (where xml
is an XDocument instance):
var s = new MemoryStream();
var sw = new StreamWriter(s);
xml.Save(sw);
sw.Flush();
s.Position = 0;
TextReader tr = new StreamReader(s);
However, this seems a little clunky, so I was wondering if there's an easier way?
Edit
The above example is equivalent to converting the entire instance to an XML string and then create a TextReader over that string.
I was just wondering whether there's a more stream-like way to do it than reading the entire contents into memory.
TextReader tr = new StringReader(xml.ToString());