У меня есть класс, который содержит список. В своем конструкторе я добавляю объект по умолчанию в список.Xml deserialize делает нежелательную инициализацию
class A
{
List<B> list;
public A()
{
list = new List<B>();
B b = new B();
list.Add(b);
}
}
Но, кажется, когда XmlSerializer
десериализации файл XML, содержащий A
объект, загруженный объект имеет два B
объекта в списке. Думаю, он снова называет конструктор и конструктор добавляет следующий B
Почему это происходит? Как я могу избежать этого?
Когда он десериализует, он вызывает конструктор по умолчанию, который в вашем случае добавляет объект 'B'. ** Затем ** он преобразовывает все * свойства * в свои десериализованные значения, то есть добавляет * второй * 'B' объект (с' list.Add'). Ваш конструктор должен ** не ** добавлять элемент в список, если хотите, чтобы это не происходило. –