Comment lire un XmlReader sans la faire avancer

hey les gars, j'ai ce scénario:

while (reader.Read())
{
    if (reader.NodeType == XmlNodeType.Element && reader.Name == itemElementName)
    {
        XElement item = null;
        try
        {
            item = XElement.ReadFrom(reader) as XElement;
        }
        catch (XmlException ex)
        {
           //log line number and stuff from XmlException class  
        }
    }
}

Au-dessus de la boucle, je suis la transformation d'un certain nœud (itemElementName) dans un XElement.

Certains nœuds sera bon XML et aller dans un XElement, cependant, certains ne seront pas d'.

Dans le CATCH, j'aimerais non seulement rattraper la norme XmlException trucs... j'aimerais aussi attraper un extrait de l'actuel Xml et d'une chaîne.

Cependant, si je fais tout type d'opération de LECTURE sur le nœud avant de passer à la XElement, il se déplace le lecteur de l'avant.

Comment pouvez obtenir un "instantané" du contenu de la OuterXml du lecteur sans interférer avec sa position?

OriginalL'auteur andy | 2010-06-01