public override void WriteTo(XmlWriter writer)
{
XmlReader r;
lock (this)
{
if (reader == null) throw new Exception("The XmlReader has already been opened once and cannot be reset.");
r = reader;
reader = null;
}
if (r.ReadState == ReadState.Initial)
r.Read();
while(!r.EOF)
writer.WriteNode(r, true);
}