Сериализация производных классов в списке. - C#
Формулировка задачи:
Интересует процесс сериализации списка с унаследованными типами на примере:
Как правильно сериализовать класс, чтобы не было цикличных ссылок?
[XmlInclude(typeof(Derived1)), XmlInclude(typeof(Derived2))]
public class Base
{}
public class Derived1 : Base
{}
public class Derived2 : Derived1
{}
public class Main
{
List<Base> list = new List<Base>();
list.Add(new Derived1);
list.Add(new Derived2);
...
new XmlSerializer(typeof(List<Base>)).Serialize(xmlWriter, list); //Exception -
//A circular reference was detected while serializing an object of type 'List<Base>'...
...
}Решение задачи: «Сериализация производных классов в списке.»
textual
Листинг программы
SerialClass temp=new SerialClass(); temp.Bases.Add(new Derived1()); temp.Bases.Add(new Derived2()); mySerializer.Serialize(myWriter, temp.Bases)