Сериализация нескольких списков в один файл - 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;