Example #1
0
        static void Main(string[] args)
        {
            University HSE = new University();

            HSE.UniversityName = "NRU HSE";

            Human[] deptStaff = { new Professor("Ivanov"),
                                  new Professor("Petrov") };

            Dept SE = new Dept("SE", deptStaff);

            HSE.Departments = new List <Dept>();
            HSE.Departments.Add(SE);

            University MSU = new University();

            MSU.UniversityName = "MSU";

            Human[] deptStaffM = { new Professor("Ivanov"), new Professor("Chizov"),
                                   new Professor("Petrov") };

            Dept SEM = new Dept("SEM", deptStaffM);

            MSU.Departments = new List <Dept>();
            MSU.Departments.Add(SEM);

            University[] universities = new University[] { HSE, MSU };

            DataContractSerializer serializer = new DataContractSerializer(typeof(University[]), new Type[] { typeof(Human), typeof(Professor), typeof(Dept) });

            using (Stream file = new FileStream("Dataser.xml", FileMode.Create, FileAccess.Write, FileShare.None))
            {
                serializer.WriteObject(file, universities);
            }

            // Десериализация
            University[] deserial;

            using (Stream file = File.OpenRead("Dataser.xml"))
            {
                deserial = (University[])serializer.ReadObject(file);
                Console.WriteLine("XML - " + deserial[0].UniversityName);
                Console.WriteLine("XML - " + deserial[1].UniversityName);
            }

            foreach (Dept d in deserial[0].Departments)
            {
                foreach (Human h in d.Staff)
                {
                    if (h is Professor)
                    {
                        Console.WriteLine(d.DeptName + " prof.: " + h.Name);
                    }
                }
            }

            foreach (Dept d in deserial[1].Departments)
            {
                foreach (Human h in d.Staff)
                {
                    if (h is Professor)
                    {
                        Console.WriteLine(d.DeptName + " prof.: " + h.Name);
                    }
                }
            }

            Console.ReadKey();
        }
Example #2
0
        static void Main(string[] args)
        {
            University HSE = new University();

            HSE.UniversityName = "NRU HSE";

            Human[] deptStaff = { new Professor("Ivanov"),
                                  new Professor("Petrov") };

            Dept SE = new Dept("SE", deptStaff);

            HSE.Departments = new List <Dept>();
            HSE.Departments.Add(SE);

            University MSU = new University();

            MSU.UniversityName = "MSU";

            Human[] deptStaffM = { new Professor("Ivanov"), new Professor("Chizov"),
                                   new Professor("Petrov") };

            Dept SEM = new Dept("SEM", deptStaffM);

            MSU.Departments = new List <Dept>();
            MSU.Departments.Add(SEM);

            University[] universities = new University[] { HSE, MSU };
            string       s            = JsonSerializer.Serialize(universities);

            University[] deserial = JsonSerializer.Deserialize <University[]>(s);

            var ds = new DataContractSerializer(typeof(University[]), new Type[] { typeof(Professor) });

            using (FileStream fs = new FileStream("univer.xml", FileMode.OpenOrCreate))
            {
                ds.WriteObject(fs, universities);
            }
            using (FileStream fs = new FileStream("univer.xml", FileMode.Open))
            {
                University[] universities2 = (University[])ds.ReadObject(fs);
                foreach (Dept d in universities2[0].Departments)
                {
                    foreach (Human h in d.Staff)
                    {
                        if (h is Professor)
                        {
                            Console.WriteLine(d.DeptName + " prof.: " + h.Name);
                        }
                    }
                }

                foreach (Dept d in universities2[1].Departments)
                {
                    foreach (Human h in d.Staff)
                    {
                        if (h is Professor)
                        {
                            Console.WriteLine(d.DeptName + " prof.: " + h.Name);
                        }
                    }
                }
            }
        }
        static async void Main(string[] args)
        {
            University HSE = new University();

            HSE.UniversityName = "NRU HSE";

            Human[] deptStaff = { new Professor("Ivanov"),
                                  new Professor("Petrov") };

            Dept SE = new Dept("SE", deptStaff);

            HSE.Departments = new List <Dept>();
            HSE.Departments.Add(SE);

            University MSU = new University();

            MSU.UniversityName = "MSU";

            Human[] deptStaffM = { new Professor("Ivanov"), new Professor("Chizov"),
                                   new Professor("Petrov") };

            Dept SEM = new Dept("SEM", deptStaffM);

            MSU.Departments = new List <Dept>();
            MSU.Departments.Add(SEM);

            University[] universities = new University[] { HSE, MSU };

            // Сериализация
            using (Stream file = new FileStream("JsonSer.json", FileMode.Create, FileAccess.Write, FileShare.None))
            {
                await JsonSerializer.SerializeAsync(file, universities);
            }



            // Десериализация
            University[] deserial;
            using (Stream file = File.OpenRead("JsonSer.json"))
            {
                deserial = await JsonSerializer.DeserializeAsync <University[]>(file);

                Array.ForEach(deserial, Console.WriteLine);
            }

            foreach (Dept d in deserial[0].Departments)
            {
                foreach (Human h in d.Staff)
                {
                    if (h is Professor)
                    {
                        Console.WriteLine(d.DeptName + " prof.: " + h.Name);
                    }
                }
            }

            foreach (Dept d in deserial[1].Departments)
            {
                foreach (Human h in d.Staff)
                {
                    if (h is Professor)
                    {
                        Console.WriteLine(d.DeptName + " prof.: " + h.Name);
                    }
                }
            }

            Console.ReadKey();
        }