(De-)Serialisierung einzelner Objekte



  • Um nicht immer eine gesamte Datenstruktur beim Deserialisieren zu laden. Wollte ich Daten einer bestimmten Klasse einzeln Speichern/Laden.

    Kurzum beim Speichern mache ich Sinngemäß folgendes:

    for (MyObject o in myobjectlist)
    {
       binaryFormatter.Serialize(o,stream);
    }
    

    Beim laden wollte das ganze auch einzeln laden und schauen ob das geladene Objekt ein gesuchtes ist

    while (stream.Position < stream.Length)
    {
      MyObject o = (MyObject)Deserialize(stream);
      //check o
    }
    

    Dummerweise wird der Stream als Liste von MyObject interpretiert. Genau das möchte ich nicht. Ich will sozusagen händisch über den Stream iterieren. Krieg ich das irgendwie noch hin?



  • Du könntest folgendes probieren:

    List<object> myObjects = binaryFormatter.Deserialize(stream);
    
    foreach(object o in myObjects)
    {
        if(o is MyObject)
        {
          //mache was
        }
    


  • Ich hab einfach geschlafen, das ganze wird nicht als List interpretiert, hatte einfach nur den falschen Stream übergeben. 🙄

    Ab und an passiert sowas halt doch noch.


Anmelden zum Antworten