Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }