1
我有下面的类反序列化对象:用序列成员类
[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)
}
}
和
[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);
}
}
的line listOfBs.Remove(x=>x.s==5)
抛出一个异常,因为B的反序列化构造函数不运行,直到问题A完成了。 当我遍历代码时,A的listOfBs只是一个NULL对象的条目,它与匹配多少个B的列表中的实际内容相匹配
如何解决这个反序列化序列问题?
谢谢!像魅力一样工作。我很遗憾,只有一个人赞成放弃 – Matt 2012-04-23 23:14:29