Сериализация нескольких списков в один файл - C#

Узнай цену своей работы

Формулировка задачи:

Имеется несколько списков:
public static List<Photo> photos = new List<Photo>();
        public static List<Music> music = new List<Music>();
        public static List<Video> videos = new List<Video>();
Как все их сериализовать в один файл? Для одного списка делаю так:
XmlSerializer serializerPhoto = new XmlSerializer(typeof(List<Photo>));
            TextWriter textWriter = new StreamWriter(@"e:\db.xml");
            serializerPhoto.Serialize(textWriter, photos);
            textWriter.Close();
если сделать так:
...
serializerPhoto.Serialize(textWriter, photos);
serializerPhoto.Serialize(textWriter, music);
...
то программа не запускается, вроде как блокируется доступ к файлу.
Сделал запись вот так:
Type[] personTypes = { typeof(List<Photo>), typeof(List<Music>) };
        object[] bla = { photos, music };
TextWriter textWriter = new StreamWriter(@"E:\db.xml");
            for (int i = 0; i < personTypes.Length; i++)
            {
                XmlSerializer serializerPhoto = new XmlSerializer(personTypes[i]);
                serializerPhoto.Serialize(textWriter, bla[i]);
            }
            textWriter.Close();
Но при чтении ошибка
TextReader textReader = new StreamReader(@"E:\db.xml");
                for (int i = 0; i < personTypes.Length; i++)
                {
                    XmlSerializer deserializer = new XmlSerializer(personTypes[i]);
                    if (i == 0) bla[0] = (List<Photo>)deserializer.Deserialize(textReader);
                    if (i == 1) bla[1] = (List<Music>)deserializer.Deserialize(textReader);
                }
                    textReader.Close();

Решение задачи: «Сериализация нескольких списков в один файл»

textual
Листинг программы
 familyAnimalList;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5
Похожие ответы