Hallo
Ich möcht bei meinem C# Programm eine List mit Objekten aus meiner
eignenen Klasse abspeichern & wieder einlesen. Das Abspeichern
funktioniert, beim einlesen bekomme ich jedoch folgender Fehler:
InvalidOperationExeption wurde nicht behandelt.
Fehler im XML-Dokument (0,0).
Was läuft falsch? habe schon x Varianten ausprobiert,jedoch ohne
Erfolg..
1 | public static void SerializeToXML <T>(List<T> dataList, string path)
|
2 | {
|
3 | XmlSerializer ser = new XmlSerializer(typeof(List<USBStick>));
|
4 | FileStream str = new FileStream(path, FileMode.Create);
|
5 | ser.Serialize(str,dataList);
|
6 | str.Close();
|
7 | }
|
8 |
|
9 | public static List<T> DeserializeToList<T>(string path)
|
10 | {
|
11 | List<T> list = new List<T>();
|
12 | XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<T>));
|
13 | FileStream str = new FileStream(path, FileMode.Create);
|
14 | list = (List<T>)xmlSerializer.Deserialize(str); //<<== ERROR!
|
15 | return list;
|
16 | }
|
Der durch die SerializeToXML Methode erzeugtes XML Code
1 | <?xml version="1.0"?>
|
2 | <ArrayOfUSBStick xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
3 | <USBStick>
|
4 | <name>USB1</name>
|
5 | <path>PfadSpeicherort1</path>
|
6 | <archivPath>PfadArchiv1</archivPath>
|
7 | <IDnumber>46</IDnumber>
|
8 | <syncMode>375</syncMode>
|
9 | <archivMode>5743</archivMode>
|
10 | <archivMax>347</archivMax>
|
11 | <date>2012-10-10T00:00:00</date>
|
12 | </USBStick>
|
13 | <USBStick>
|
14 | <name>USB2</name>
|
15 | <path>PfadSpeicherort2</path>
|
16 | <archivPath>PfadArchiv2</archivPath>
|
17 | <IDnumber>4</IDnumber>
|
18 | <syncMode>3</syncMode>
|
19 | <archivMode>543</archivMode>
|
20 | <archivMax>34</archivMax>
|
21 | <date>2011-10-10T00:00:00</date>
|
22 | </USBStick>
|
23 | </ArrayOfUSBStick>
|
Vielen Dank!