/// <summary> /// Освободить управляемые ресурсы /// </summary> protected override void DisposeManaged() { base.DisposeManaged(); if (_reader != null) { _reader.Dispose(); _reader = null; } _current = null; }
/// <summary> /// Создание итератора по элементам XmlReader с заданным названием /// </summary> /// <param name="reader">Используемый XmlReader</param> /// <param name="serializer">Сконфигурированный XmlSerializer</param> /// <param name="name">Название элементов</param> /// <param name="end">Метод вызываемый по окончании выборки</param> public DeserializeEnumerator(XmlReader reader, XmlSerializer serializer, string name, Action end = null) { _serializer = serializer; _reader = new XmlReaderEnumerator(reader, name, end); }
/// <summary> /// Создание итератора по элементам XmlReader соответствующих критерию /// </summary> /// <param name="reader">Используемый XmlReader</param> /// <param name="serializer">Сконфигурированный XmlSerializer</param> /// <param name="criteria">Метод фильтрации подходящих элементов bool Criteria( XmlReader element ), /// если не задан (null), все элементы первого уровня</param> /// <param name="end">Метод вызываемый по окончании выборки</param> public DeserializeEnumerator(XmlReader reader, XmlSerializer serializer, Func <XmlReader, bool> criteria = null, Action end = null) { _serializer = serializer; _reader = new XmlReaderEnumerator(reader, criteria, end); }