public static XmlDictionaryReader CreateDictionaryReader(XmlReader reader) { if (reader == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameof(reader)); XmlDictionaryReader dictionaryReader = reader as XmlDictionaryReader; if (dictionaryReader == null) { dictionaryReader = new XmlWrappedReader(reader, null); } return dictionaryReader; }
public static IEnumerable <XmlDictionaryReader> GetChildElementReaders(this XmlDictionaryReader reader) { while (reader.Read()) { if (reader.IsStartElement()) { using (var child = XmlDictionaryReader.CreateDictionaryReader(reader.ReadSubtree())) { if (!child.Read()) { continue; } yield return(child); } } } }