protected virtual void Dispose(bool disposing) { if (!disposing) { return; } _header = null; foreach (var entry in TOC.Where(entry => entry.Data != null)) { entry.Data.Dispose(); } TOC.Clear(); if (_reader != null) { _reader.Dispose(); } }