3 つのクラスがあり、すべてのクラスのデータを 1 つの XML ファイルに追加したいのですが?
最初のクラスは次のとおりです。
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public override string ToString()
{
return FirstName + " " +LastName + " " +Email;
}
}
2 番目のクラスは次のとおりです。
public class Student:Person
{
public Student()
{
}
public double AssessmentGrade { get; set; }
public double AssignmentGrade { get; set; }
public override string ToString()
{
return base.ToString() + "," +AssessmentGrade + "," + AssignmentGrade;
}
}
3 番目のクラスは次のとおりです。
public class Teacher:Person
{
public string RoomNumber
{
get;
set;
}
public override string ToString()
{
return base.ToString() + "," + RoomNumber;
}
}
XMLファイルにすべてのデータを保存するDBクラスも作成しました。
private const string path = @"Persons.xml";
Public static void SavePersons(List<Person> Persons)
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = (" ");
XmlWriter xmlOut = XmlWriter.Create(path, settings);
xmlOut.WriteStartDocument();
xmlOut.WriteStartElement("Persons");
foreach (Person person in Persons)
{
Student student = new Student();
Teacher teacher = new Teacher();
xmlOut.WriteStartElement("Person");
xmlOut.WriteAttributeString("Email", person.Email);
xmlOut.WriteElementString("Firstname", person.FirstName);
xmlOut.WriteElementString("Lastname", person.LastName);
xmlOut.WriteElementString("AssessmentGrade",
student.AssessmentGrade.ToString());
xmlOut.WriteElementString("AssignmentGrade",
student.AssignmentGrade.ToString());
xmlOut.WriteElementString("Room", teacher.RoomNumber.ToString());
xmlOut.WriteEndElement();
}
xmlOut.WriteEndElement();
xmlOut.Close();
}
ここでの問題は、同じ XML に Student クラスと Teacher クラスを追加する方法です。追加しようとしましたが、機能しません。助けてください。