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 бакалавр
{
...