Autor Beitrag
kiar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 51



BeitragVerfasst: Di 03.01.06 18:27 
moin,

wie kann ich eine Liste serialisieren.
ausblenden 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:
ausblenden 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
ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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 :-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
kiar Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 51



BeitragVerfasst: Di 03.01.06 18:56 
moin,
wenn du oben gelesen hättest , wüstest du, das ich auch dies schon probiert habe.

user profile iconChristian 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 03.01.06 19:05 
user profile iconkiar 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.

user profile iconkiar 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:
ausblenden 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);

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
kiar Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 51



BeitragVerfasst: Di 03.01.06 19:19 
user profile iconChristian 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 03.01.06 19:28 
user profile iconkiar 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
kiar Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 51



BeitragVerfasst: 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