XML-Сериализация списка объектов двух классов - C#
Формулировка задачи:
Есть 2 класса: студент и магистр (производный от класса студент)
В основной программе я создам список list <бакалавр> студент. Одни объекты из этого списка будут принадлежать классу "бакалавр", а другие - классу "магистр".
Возможно ли сериализовать в файл XML такой список? Или в нём должны быть объекты только одного класса?
Сериализацию планирую делать так:
Например, мне надо сериализировать такой список:
Листинг программы
- [Serializable]
- public class бакалавр
- {
- public string фамилия { get; set; }
- public string имя { get; set; }
- public string отчество { get; set; }
- public string факультет { get; set; }
- public бакалавр()
- {
- }
- public бакалавр(string фамилия, string имя, string факультет)
- {
- this.фамилия = фамилия;
- this.имя = имя;
- this.отчество=отчество;
- this.факультет = факультет;
- }
- }
- [Serializable]
- public class магистр : бакалавр
- {
- public double балл { get; set; }
- public string номер { get; set; }
- public DateTime дата { get; set; }
- public магистр()
- { }
- public магистр(string фамилия, string имя, string факультет, double балл, string номер, DateTime дата): base(фамилия, имя, отчество, факультет)
- {
- this.балл = балл;
- this.номер = номер;
- this.дата = дата;
- }
- }
Листинг программы
- SaveFileDialog сохранение_файла = new SaveFileDialog();
- сохранение_файла.Filter = "Файлы XML(*.xml)|*.xml";
- if (сохранение_файла.ShowDialog()==DialogResult.OK)
- {
- XmlSerializer сериализатор = new XmlSerializer(typeof(List<бакалавр>));
- using(FileStream поток=new FileStream(сохранение_файла.FileName, FileMode.OpenOrCreate))
- сериализатор.Serialize(поток,студент);
- }
Листинг программы
- List<бакалавр> студент = new List<бакалавр>();
- студент.Add(new бакалавр("Петров","Егор","Иванович","Математический"));
- студент.Add(new магистр("Сидоров", "Олег", "Иванович", "Математический", 4.5, "0957432",
- DateTime.Parse("25.09.1999")));
Решение задачи: «XML-Сериализация списка объектов двух классов»
textual
Листинг программы
- [XmlInclude(typeof(магистр))]
- public class бакалавр
- {
- ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д