我有一个类Bar
,其中包含一个List<Foo>
,同时Foo
和Bar
都实现了ISerializable接口。
当反序列化一个Bar
对象时,List<Foo>
最初被填充了(正确数量的)null
,然后在退出Bar
反序列化的构造函数时,每个Foo
的反序列化构造函数会被调用,将List<Foo>
填充为(正确反序列化的)Foo
。
这是为什么呢?我无法在测试项目中复制这种情况:无论我尝试什么,Foo
的反序列化构造函数都会在Bar
构造函数之前被调用。实际上,这正是我想要的行为,因为我需要按顺序填充列表以对反序列化的Bar
进行一些初始化操作!
有人知道是什么原因导致Foo
反序列化如此晚吗?谢谢!