Probleme in c# mit desiriliazation

Lele

Schraubenverwechsler(in)
Hi,
ich hab gerade ziemlich viel gegooglet und nachgelesen für so ein paar zeilen, die noch nicht mal ziemlich anspruchsvoll sind. Also seriliazation sieht gut aus, hab schon ins xml dokument gekugt, nur die desiriliazation funzt noch ned. hie mein codefür die beiden voids

Code:
public void serialize()
        {
            XmlSerializer xs = new XmlSerializer(typeof(Stundenplan));
            TextWriter writer = new StreamWriter(@"daten.xml");
            xs.Serialize(writer, this);
            writer.Close();
        }
        public void deserialization()
        {
            XmlSerializer xs = new XmlSerializer(typeof(Stundenplan));
            TextReader reader = new StreamReader(@"daten.xml");
            Stundenplan stu;
            stu = (Stundenplan)xs.Deserialize(reader);

        }
Was fehlt/mach ich falsch??
den rest des codes zu posten wär jetzt doch zu viel.
 
hier sind mal die objekte in meinen klassen:

Code:
public class Stundenplan  
   {         
public Fach[] faecher = new Fach[100];
         public int fachnr = 0;
  .......(viele voids)
      public class Fach
     {
         public String name;
         public bool[] stunden = new bool[8];
         public Hausaufgabe[] hausaufgaben = new Hausaufgabe[10000];
         public int hausaufgabennr = 0;
         public String lehrer;
 ....(auch ein paar voids)

       public class Hausaufgabe
     {
         public DateTime datum;
         public String beschreibung;
         public bool gemacht;
         public Hausaufgabe()
         {
          }
     }
 
Hi,

Nebenbei bemerkt: Methodennamen gehören groß geschrieben und Klassen nicht in andere Klassen verschachtelt.
Nun zu Deinem Fehler:
Code:
xs.Serialize(writer, this);
der zweite Parameter gibt dein zu serialisierende Objekt an. Das ist aber nicht this (dann wär es der Aufrufer) sondern ein Objekt vom Typ Stundenplan:
Code:
Stundenplan stundenplan = new Stundenplan();
xs.Serialize(writer, stundenplan);
Und zu guter Letzt gehören Klassen, die serialisiert werden sollen, mit dem SerializableAttribute gekennzeichnet:
Code:
[Serializable]
public class Stundenplan
{
    public Fach[] faecher = new Fach[100];
    public int fachnr = 0;
}
Gruß, Max
 
Zurück