Иногда бывает необходимо сохранить коллекцию класса List<T> в формате XML. С XML уже можно поиграться с дальнейшей обработкой данных, например, в Access или Excel. Но сначала надо сохранить. В языке C# с помощью библиотеки System.Xml.Serialization это решается на ура буквально в 4 строчки кода.
Итак, есть класс:
//Наш класс public class logAttr { public string Id {get; set; } public string IsFailed { get; set; } public string User { get; set; } public string Pages { get; set; } public string Date { get; set; } }
Запись коллекции List<logAttr> потребует всего 4 строчки, кроме ее заполнения.
//Запись List<T> в XML формате string output = "c:\\output.xml"; List<logAttr> noDupes = logsElements.Distinct().ToList(); XmlSerializer serialiser = new XmlSerializer(typeof(List<logAttr>)); TextWriter FileStream = new StreamWriter(output); serialiser.Serialize(FileStream, noDupes); FileStream.Close();
В результате данные файла будут выглядеть примерно так:
<?xml version="1.0" encoding="utf-8"?> <ArrayOfLogAttr xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <logAttr> <Id>{B4C971BB-BA85-404F-AA64-3434FD3BDEB3}</Id> <IsFailed>false</IsFailed> <User>User1</User> <Pages>2</Pages> <Date>22.03.2011 14:13:02.214000</Date> </logAttr> <logAttr> <Id>{29C77821-3736-4370-811E-0A71F5F033C6}</Id> <IsFailed>false</IsFailed> <User>User2</User> <Pages>4</Pages> <Date>09.04.2011 14:21:15.102000</Date> </logAttr> </ArrayOfLogAttr>