Xml反序列化执行不必要的初始化

本文关键字:初始化 不必要 执行 反序列化 Xml | 更新日期: 2023-09-27 17:53:04

我有一个包含列表的类。在它的构造函数中,我向列表中添加了一个默认对象。

class A
{
   List<B> list;
   public A()
   {
       list = new List<B>();
       B b = new B();
       list.Add(b);
   }
}

但是当XmlSerializer反序列化包含A对象的XML文件时,加载的对象在其列表中有两个B对象。我猜它会再次调用构造函数构造函数会添加下一个B

为什么会这样?我怎样才能避免呢?

Xml反序列化执行不必要的初始化

尝试重载构造函数。一个不取任何东西,也不向列表中添加任何东西,这就是反序列化时可以使用的方法。另一个取B并将B添加到列表中