Заведи класс который будет хранить коллекцию и сериализуй его, так:
Код | SerializationList sls = new SerializationList(); // класс который хранит коллекцию
XmlAttributes attrs = new XmlAttributes(); attrs.XmlArrayItems.Add(new XmlArrayItemAttribute("", typeof(Класс который хранит лист))); // эта строка повторяется столько раз, сколько в листе типов XmlAttributeOverrides attrOver = new XmlAttributeOverrides(); attrOver.Add(sls.GetType(), "ля-ля", attrs);
XmlSerializer serializer = new XmlSerializer(typeof(SerializationList), attrOver); XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add(string.Empty, string.Empty);
using (FileStream file = new FileStream("Путь", FileMode.Create)) { XmlTextWriter xmlWriter = new XmlTextWriter(file, Encoding.UTF8); xmlWriter.WriteStartDocument(); serializer.Serialize(xmlWriter, sls, ns); }
|
Добавлено через 1 минуту и 37 секунд С помощью этого кода, ты в последствии, легко расширишь сохранение, например добавляя новые типы в лист или инструкции препроцессора
Добавлено через 3 минуты и 27 секунд А класс для хранения листа будет выглядить примерно так
Код | [XmlInclude(typeof(Имя класса))] [XmlInclude(typeof(Имя класса))] [XmlRoot("Главный_элемент")] public class SerializationListShapes { [XmlArray("Тра-ля-ля")] [XmlArrayItem("Имя элемента для класса", Type = typeof(Имя класса)), ] public List<Имя класса> LS {get; set;}
public SerializationListShapes(List<Имя класса> ls) { LS = ls; }
SerializationListShapes() { } }
|
|