Schreiben Sie einfach eine ganze Klasseninstanz in die XML-Datei und lesen Sie sie erneut ein

Ich habe eine Hauptklasse namenstheGarage, das Instanzen unserer Kunden-, Lieferanten- und Jobklassen enthält.

Ich möchte die Programmdaten in einer XML-Datei speichern, ich habe den folgenden Code verwendet (nur ein Ausschnitt, ich habe passenden Code für die anderen Klassen). Ich frage mich, ob es für mich eine einfachere Möglichkeit gibt, dies zu tun: Schreiben Sie die gesamte theGarage-Klasse in eine XML-Datei und lesen Sie sie ein, ohne den gesamten Code wie unten beschrieben schreiben zu müssen.

   public void saveToFile()
    {
        using (XmlWriter writer = XmlWriter.Create("theGarage.xml"))
        {
            writer.WriteStartDocument();

            ///
            writer.WriteStartElement("theGarage");
            writer.WriteStartElement("Customers");

            foreach (Customer Customer in Program.theGarage.Customers)
            {
                writer.WriteStartElement("Customer");
                writer.WriteElementString("FirstName", Customer.FirstName);
                writer.WriteElementString("LastName", Customer.LastName);
                writer.WriteElementString("Address1", Customer.Address1);
                writer.WriteElementString("Address2", Customer.Address2);
                writer.WriteElementString("Town", Customer.Town);
                writer.WriteElementString("County", Customer.County);
                writer.WriteElementString("PostCode", Customer.Postcode);
                writer.WriteElementString("TelephoneHome", Customer.TelephoneHome);
                writer.WriteElementString("TelephoneMob", Customer.TelephoneMob);

                //begin vehicle list
                writer.WriteStartElement("Vehicles");

                foreach (Vehicle Vehicle in Customer.Cars)
                {
                    writer.WriteStartElement("Vehicle");
                    writer.WriteElementString("Make", Vehicle.Make);
                    writer.WriteElementString("Model", Vehicle.Model);
                    writer.WriteElementString("Colour", Vehicle.Colour);
                    writer.WriteElementString("EngineSize", Vehicle.EngineSize);
                    writer.WriteElementString("Registration", Vehicle.Registration);
                    writer.WriteElementString("Year", Vehicle.YearOfFirstReg);
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
                writer.WriteEndElement();
            }
        }
    }

Antworten auf die Frage(4)

Ihre Antwort auf die Frage