J'ai une classe de base abstraite personnalisée avec des sous-classes que j'ai rendues sérialisables/désérialisables avec ISerializable. Quand je fais la sérialisation/désérialisation des instances uniques des sous-classes de cette classe, tout fonctionne bien. Cependant, quand je fais un tableau d'entre eux, je finis toujours avec un tableau de null sur la désérialisation. La sérialisation est effectuée avec BinaryFormatter.La désérialisation d'un tableau donne toujours un tableau de zéro
Les éléments sont contenus dans un:
public ObservableCollection<Trade> Trades { get; private set; }
Sur sérialisation cela se fait dans GetObjectData sur le paramètre SerializationInfo:
Trade[] trades = (Trade[])Trades.ToArray<Trade>();
info.AddValue("trades", trades);
Et désérialisation cela se fait dans le constructeur de sérialisation également sur la Paramètre SerializationInfo:
Trade[] trades = (Trade[])info.GetValue("trades", typeof(Trade[]));
foreach (Trade t in trades)
{
Trades.Add(t);
}
Des erialization me donne toujours un tableau de valeurs nulles et comme je l'ai mentionné plus tôt, un seul élément sérialise et deseriaizes très bien avec ce code:
sérialisation (méthode GetObjectData):
info.AddValue("trade", Trades.First<Trade>());
Désérialisation (sérialisation Constructor):
Trade t = (Trade)info.GetValue("trade", typeof(Trade));
Trades.Add(t);
Est-ce un problème courant? Il semble que personne ne s'y soit pris au moins. J'espère qu'il y a une solution :) et si je dois vous fournir plus d'informations/code, dites-le moi.
Merci!
Salut, quelle est la variable d'information? Quel est le format de sérialisation? Xml ou binaire? –
c'est le SerializationInfo que j'utilise dans le GetObjectData et le constructeur Serialization, désolé aurait dû le mentionner. – vesz
http://stackoverflow.com/questions/126155/c-array-xml-serialization Une aide? – Polity