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

时间:2015-06-02 16:28:51

标签: c# constructor xmlserializer

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

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

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

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

1 个答案:

答案 0 :(得分:1)

尝试重载构造函数。一个什么都不带,并且没有添加任何内容,这是反序列化时可以使用的内容。另一个拿B,并将B添加到列表中。