Entwickler-Ecke
IO, XML und Registry - Generics.List<> serialisieren
kiar - Di 03.01.06 18:27
Titel: Generics.List<> serialisieren
moin,
wie kann ich eine Liste serialisieren.
C#-Quelltext
1: 2: 3: 4: 5: 6:
| System.Collections.Generic.List<Auto> autos = new System.Collections.Generic.List<Auto>(); { autos.Add(new Auto(1, "Ford", "ASL - PD 89")); autos.Add(new Auto(2,"Mazda", "ASL - BA 169")); autos.Add(new Auto(3,"Audi", "ASL - KH 66")); } |
folgendes habe ich probiert:
C#-Quelltext
1: 2: 3: 4:
| System.Runtime.Serialization.Formatters.Binary.BinaryFormatter mySer = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); FileStream fs = new FileStream("Auto.xml",FileMode.Create,FileAccess.Write); for (int i = 1 ;i <= autos.Count; i++){ mySer.Serialize(fs, typeof(Auto));} |
auch wenn ich als zu serialisierens Object die Liste autos einstelle funktioniert es nicht.
bräuchte mal ein paar schläge auf den Hinterkopf.
achso die Klasse Auto
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| [Serializable()] public class Auto { protected string marke; protected string kennzeichen; protected int index; public string Marke { get{return marke;} set{marke = value; } } public string Kennzeichen { get{return kennzeichen;} set{kennzeichen = value;} } public int Index { get {return index;} set{index = value;} } public Auto(int Index, string Marke, string Kennzeichen) { this.Index = Index; this.Marke = Marke; this.Kennzeichen = Kennzeichen; } } |
Christian S. - Di 03.01.06 18:47
Äh, naja, Du serialisierst auch jedes Mal typeof(Auto) und nicht autos[i] :D (Die Schleife sollte auch bei 0 starten und bei Count-1 aufhören ;-))
//edit: Das Namespace-Gedöns brauchst Du ürbigens auch nicht jedes Mal davor schreiben :-)
kiar - Di 03.01.06 18:56
moin,
wenn du oben gelesen hättest , wüstest du, das ich auch dies schon probiert habe.
Christian S. hat folgendes geschrieben: |
//edit: Das Namespace-Gedöns brauchst Du ürbigens auch nicht jedes Mal davor schreiben :-) |
auch nicht, wenn der namespace noch nicht vorhanden ist ?
raik
Christian S. - Di 03.01.06 19:05
kiar hat folgendes geschrieben: |
wenn du oben gelesen hättest , wüstest du, das ich auch dies schon probiert habe. |
Dein Tonfall motiviert nicht wirklich, Dir weiterhin zu helfen. Aber immer den Typ Auto zu serialisieren kann wohl kaum die Lösung sein, daher wäre es wohl sinnvoll, mal den Versuch mit der Liste hier zu posten.
kiar hat folgendes geschrieben: |
auch nicht, wenn der namespace noch nicht vorhanden ist ? |
Da bin ich jetzt einfach mal von ausgegangen ...
System.Collections.Generic wird von VC#Express z.B. standardmäßig eingebunden.
//edit: Nachtrag:
So geht es bei mir:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| List<Auto> autos = new List<Auto>(); autos.Add(new Auto(1, "Ford", "ASL - PD 89")); autos.Add(new Auto(2, "Mazda", "ASL - BA 169")); autos.Add(new Auto(3, "Audi", "ASL - KH 66"));
BinaryFormatter mySer = new BinaryFormatter(); FileStream fs = new FileStream("c:\\Auto.xml", FileMode.Create, FileAccess.Write);
mySer.Serialize(fs, autos);
fs.Close();
fs = new FileStream("c:\\Auto.xml", FileMode.Open); List<Auto> mehrAutos = (List<Auto>)mySer.Deserialize(fs);
foreach (Auto a in mehrAutos) MessageBox.Show(a.Kennzeichen); |
kiar - Di 03.01.06 19:19
Christian S. hat folgendes geschrieben: |
Dein Tonfall motiviert nicht wirklich, Dir weiterhin zu helfen. Aber immer den Typ Auto zu serialisieren kann wohl kaum die Lösung sein, daher wäre es wohl sinnvoll, mal den Versuch mit der Liste hier zu posten. |
deine smilies sehen überheblich aus und erwecken den anschein, als ob du über den dingen schwebst. mein tonfall ist nur die reaktion auf deine arrogante visualisierung deiner antwort.
dann werde ich es wohl alleine versuchen, oder auf andere hilfe hoffen müssen.
Zitat: |
System.Collections.Generic wird von VC#Express z.B. standardmäßig eingebunden. |
jetzt wo du es sagst sehe ich es auch.
raik
edit// Danke ich werde es mir anschauen
Christian S. - Di 03.01.06 19:28
kiar hat folgendes geschrieben: |
deine smilies sehen überheblich aus und erwecken den anschein, als ob du über den dingen schwebst. |
Entschuldige mal bitte. Wenn jemand immer denselben Typ serialisiert und glaubt, damit die Daten einer Instanz in einen Stream zu packen, wird man ja wohl nochmal ein ":D" loswerden dürfen. Ich war davon ausgegangen, dass das einfach ein Flüchtigkeitsfehler war und dass Du es eigentich besser weißt. Falls das falsch rübergekommen ist, tut es mir Leid, aber vielleicht solltest Du auch ein bisschen weniger empfindlich reagieren.
kiar - Di 03.01.06 19:55
So,
habe meinen Fehler gefunden, ich kann mir das File nicht im explorer anschauen, was ich aber immer wieder versucht habe.
verstehe ich zwar nicht, muss ich mir näher anschauen. so wie Christian es oben geschrieben hat klappt es prima( auch ohne den ganzen namespace Gedöns)
klappt aber auch mit :-)
danke raik
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!