Permalänk
Medlem

Problem deserializing C#

Jag har kört binär serialisering på en lista List<objekt> listan

Problemet;

Följande kod har jag försökt med för att deserialisera

using (Stream stream = File.Open("data.bin", FileMode.Open)) { BinaryFormatter bin = new BinaryFormatter(); listan.Add((objekt)bin.Deserialize(stream)); }

När jag stegar igenom koden ser jag att den går in i objektklassen och går in rätt konstruktorer.
Men på nåt sätt läggs det inte in i listan och slutligen kommer felmeddelandet att end of stream reached before parsing was finished eller nåt i den stilen.

Om ni behöver veta nåt mer angående koden, säg bara till.

Permalänk
Medlem

Prova först att lägga till stream.Position = 0; före deserialiseringen (först i using-satsen).
Skulle annars vilja se hur ditt objekt "objekt" ser ut.

Permalänk
Medlem

Jag löste det med följande:

IFormatter bin = new BinaryFormatter(); FileStream stream = new FileStream("data.bin", FileMode.Open, FileAccess.Read); listan = bin.Deserialize(stream) as List<Klassen>;

Har emellertid stött på ett nytt problem.
Har en baseklass med ett antal attribut som helt i sin ordning serialiseras och deserialiseras.
Sen har jag ett antal derived-klasser varav vissa av dessa har egna attribut som också måste serialiseras och deserialiseras - i kombinataion med standardattributen från baseklassen.
Finns det någon smart lösning för detta?