Иногда бывает необходимо сохранить коллекцию класса 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>

