Сохранить List<T> в XML файл

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

 


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment







MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика