private void Deserialize() { var d = new System.IO.DirectoryInfo(ProgramsDirectory); System.IO.FileInfo[] files = d.GetFiles("*.sbc"); foreach (System.IO.FileInfo file in files) { var str = _programsDirectory + @"\" + file.Name; using (System.Xml.XmlReader reader = System.Xml.XmlReader.Create(str)) { try { while (reader.Read()) { switch (reader.NodeType) { case System.Xml.XmlNodeType.Element: if (reader.Name == "TaskItem") { TaskItem document = new TaskItem(); document.ReadXml(reader); _taskList.Add(document); } break; case System.Xml.XmlNodeType.EndElement: if (reader.Name == "TaskItem") { return; } break; } } } finally { reader.Close(); } } } File.WriteAllText(@"C:\temp\logfile.txt", _taskList.Count.ToString()); _isDeserialized = true; }