J'ai la classe suivante:objets De-sérialisation avec des classes de membres sérialisés
[Serializable]
public class A : ISerializable
{
List<B> listOfBs = new List<B>();
public A()
{
// Create a bunch of B's and add them to listOfBs
}
public A(SerializationInfo info, StreamingContext context)
{
listOfBs = (List<B>)info.GetValue("listOfBs",typeof(List<B>))
listOfBs.Remove(x=>x.s==5)
}
}
et
[Serializable]
public class B : ISerializable
{
public int s;
public B(int t)
{
s=t;
}
public B(SerializationInfo info, StreamingContext context)
{
s = info.GetInt32("s");
}
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("s",s);
}
}
Le problème du line listOfBs.Remove(x=>x.s==5)
jette une exception parce que le constructeur de-sérialisation de B ne fonctionne pas avant A est fait. Lorsque je parcours le code, listOfBs de A est juste une entrée d'objets NULL correspondant à combien de B sont réellement dans listOfBs
Comment peut-on résoudre ce problème de séquence de désérialisation?
Merci! Travaillé comme un charme. Je regrette d'avoir un seul upvote à donner – Matt