private void FirstTask_Load(object sender, EventArgs e) //СОБЫТИЕ - ЗАГРУЗКА ФОРМЫ и ДЕСЕРИАЛИЗАЦИЯ ОБЪЕКТОВ { if (File.Exists("Troll.bin") && File.Exists("Berserker.bin") && File.Exists("Dragon.bin") && File.Exists("DT.bin")) { TrollFile = File.Open("Troll.bin", FileMode.Open, FileAccess.ReadWrite); DragonFile = File.Open("Dragon.bin", FileMode.Open, FileAccess.ReadWrite); //Открытие файлов, где лежат объекты юнитов BerserkerFile = File.Open("Berserker.bin", FileMode.Open, FileAccess.ReadWrite); bif = new BinaryFormatter(); //Бинарный форматтер, используется для сериализации и десериализации объектов в файлы at.AddRange((List <AxeThrower>)bif.Deserialize(TrollFile)); dragons.AddRange((List <Dragon>)bif.Deserialize(DragonFile)); //выгрузка объектов обратно в оперативку berserkers.AddRange((List <Berserker>)bif.Deserialize(BerserkerFile)); DragonFile.Close(); BerserkerFile.Close(); //закрываем потоки для их сохранения TrollFile.Close(); } else { DragonFile = File.Create("Dragon.bin"); BerserkerFile = File.Create("Berserker.bin"); TrollFile = File.Create("Troll.bin"); } DrawTable(); }
private void FirstTask_FormClosing(object sender, FormClosingEventArgs e)//СОБЫТИЕ - СЕРИАЛИЗАЦИЯ ПРИ ЗАКРЫТИИ ФОРМЫ { TrollFile = File.Open("Troll.bin", FileMode.Open, FileAccess.ReadWrite); DragonFile = File.Open("Dragon.bin", FileMode.Open, FileAccess.ReadWrite); //Открываем файлы, куда будем класть объекты в постоянную память BerserkerFile = File.Open("Berserker.bin", FileMode.Open, FileAccess.ReadWrite); bif.Serialize(TrollFile, at); bif.Serialize(BerserkerFile, berserkers); //Кладем объекты в постоянную память bif.Serialize(DragonFile, dragons); DragonFile.Close(); BerserkerFile.Close(); //Закрываем поток TrollFile.Close(); }