Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            //  FileWatcher.Init(".", "*.*");

            Train train = new Train(5);

            train.AddCoach(new Coach(1, CoachType.Coupe));
            train.AddCoach(new Coach(2, CoachType.Coupe));

            train.AddRoom(1, new Room(4, 2));
            train.AddRoom(1, new Room(4, 1));
            train.AddRoom(2, new Room(2, 2));
            train.AddRoom(2, new Room(2));

            Rijndael rijndael = Rijndael.Create();

            FileStorage storage = new FileStorage();

            storage.AddFilter(new Storage.Filters.CryptFilter(rijndael.IV, rijndael.Key));
            storage.AddFilter(new Storage.Filters.ZipFilter());

            Console.WriteLine("Before writing text file: \n");
            Console.WriteLine(train);

            storage.WriteTrain("train.txt", train, new TextFormatter());
            train = storage.ReadTrain("train.txt", new TextFormatter());

            Console.WriteLine("After reading text file: \n");
            Console.WriteLine(train);

            Console.WriteLine("Before writing binary file: \n");
            Console.WriteLine(train);

            storage.WriteTrain("train.dat", train, new BinaryFormatter());
            train = storage.ReadTrain("train.dat", new BinaryFormatter());

            Console.WriteLine("After reading binary file: \n");
            Console.WriteLine(train);

            Thread.Sleep(200);

            Console.WriteLine("\nDelete train.txt...");
            File.Delete("train.txt");

            Thread.Sleep(200);

            Console.WriteLine("\nRename train.dat...");
            try
            {
                File.Move("train.dat", "train_renamed.dat");
            }
            catch (IOException e)
            {
                File.Delete("train_renamed.dat");
                Thread.Sleep(200);
                File.Move("train.dat", "train_renamed.dat");
            }

            DomXml domxml = new DomXml();
            XmlDocument xml = domxml.SaveTrain(train);
            XDocument doc = XDocument.Parse(xml.OuterXml);
            TextWriter writer = new StreamWriter("train_dom.xml");
            writer.Write(doc.ToString());
            writer.Close();

            LinqXml linqxml = new LinqXml();
            doc = linqxml.SaveTrain(train);
            writer = new StreamWriter("train_linq.xml");
            writer.Write(doc.ToString());
            writer.Close();

            BinarySerialization bs = new BinarySerialization();
            FileStream fs = new FileStream("binary.dat", FileMode.Create);
            bs.Serialize(fs, train);
            fs.Close();

            fs = new FileStream("binary.dat", FileMode.Open);
            Console.WriteLine("\nBinary deserializaton:");
            Console.WriteLine(bs.Deserialize(fs));
            fs.Close();

            XmlSerialization xs = new XmlSerialization();
            fs = new FileStream("xml_s.xml", FileMode.Create);
            xs.Serialize(fs, train);
            fs.Close();

            fs = new FileStream("xml_s.xml", FileMode.Open);
            Console.WriteLine("\nXML deserializaton:");
            Console.WriteLine(xs.Deserialize(fs));
            fs.Close();

            Console.ReadLine();
        }