Сериализация в один файл - 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();