Ich habe eine benutzerdefinierte abstrakte Basisklasse mit Subklassen, die ich serializable/deseriablizeable mit ISerializable gemacht habe. Bei der Serialisierung/Deserialisierung einzelner Instanzen der Unterklassen dieser Klasse funktioniert alles einwandfrei. Wenn ich jedoch ein Array von ihnen mache, habe ich immer eine Reihe von Nullen bei der Deserialisierung. Serialisierung erfolgt mit BinaryFormatter.Deserialisierung eines Arrays gibt immer ein Array von Nullen
Die Elemente werden in einem enthalten sind:
public ObservableCollection<Trade> Trades { get; private set; }
Auf Serialisierung dies in GetObjectData auf dem SerializationInfo Parameter erfolgt:
Trade[] trades = (Trade[])Trades.ToArray<Trade>();
info.AddValue("trades", trades);
Und auf Deserialisierung dieser in der Serialisierung Konstruktor auf das auch getan wird SerializationInfo-Parameter:
Trade[] trades = (Trade[])info.GetValue("trades", typeof(Trade[]));
foreach (Trade t in trades)
{
Trades.Add(t);
}
Des erialization gibt mir immer eine Reihe von Nullen und wie ich bereits erwähnt, kann ein einzelnes Element serialisiert und deseriaizes ganz gut mit diesem Code:
Serialisierung (GetObjectData-Methode):
info.AddValue("trade", Trades.First<Trade>());
Deserialisierung (Serialisierung Constructor):
Trade t = (Trade)info.GetValue("trade", typeof(Trade));
Trades.Add(t);
Ist das ein häufiges Problem? Ich finde anscheinend keine Vorkommnisse von irgendjemand anderem, der dazu rennt. Hoffentlich gibt es eine Lösung :) und wenn ich Sie mit mehr Informationen/Code versorgen muss, sagen Sie es mir einfach.
Danke!
Hallo, was ist Info Variable? Was ist das Format der Serialisierung? Xml oder binär? –
ist es die SerializationInfo, die ich in der GetObjectData und der Serialization-Konstruktor verwenden, sollte dies erwähnt haben. – vesz
http://stackoverflow.com/questions/126155/c-array-xml-serialization Irgendwelche Hilfe? – Polity