Сериализация в один файл - C#

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

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

Здравствуйте! У меня есть три обьекта одного класса, которые я хочу сериализовать в один файл с помощю BinaryFormatter(и десериализовать потом обратно). Это возможно или в данном случае сериализовать эти обьекты можно только в разные файлы? Суть в том, что подобных обьектов может быть и не три а 10 допустим, и тогда не подойдем ручной ввод нового имени каждому потоку.

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

textual
Листинг программы
            var fileName = "user.dat";
 
            var users = new List<User>
            {
                new User("Tommi", 29), 
                new User("Mark", 20),
                new User("Danny", 34)
            };
 
            var binFormat = new BinaryFormatter();
            using (var fs = new FileStream(fileName, FileMode.Create))
            {
                foreach (var user in users)
                {
                    binFormat.Serialize(fs, user);
                }
            }
 
            using (var fs = new FileStream(fileName, FileMode.Open))
            {
                while (fs.Length != fs.Position)
                {
                    var dsUser = (User) binFormat.Deserialize(fs);
 
                    Console.WriteLine("Имя: {0} \t Возраст: {1}", dsUser.Name, dsUser.Age);
                }
            }
 
            Console.ReadLine();

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


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

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

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