Xml сериализация не однотипных данных - C#
Формулировка задачи:
Доброго времени соток. Занимаюсь пониманием xml сериализации и столкнулся с проблемой сериализации не однотипных данных. У меня есть родительский класс и на основе него создаются другие классы, которые в дальнейшем используются в массиве. Не могу понять как можно сериализовать таким образом что бы на выходе я получим массив дочерних классов с соответствующими им полями. Помогите решить проблему.
Решение задачи: «Xml сериализация не однотипных данных»
textual
Листинг программы
class Program { static void Main(string[] args) { BaseClass[] baseClasses = new BaseClass[] { new A() { I = 1, I1 = 2 }, new A() { I = 3, I1 = 4 }, new B() { I = 5, I2 = 6, I3 = 7 } }; using (StreamWriter writer = new StreamWriter("test.xml")){ XmlSerializer serializer = new XmlSerializer(typeof(BaseClass[])); serializer.Serialize(writer, baseClasses); } } } [XmlInclude(typeof(A))] [XmlInclude(typeof(B))] public class BaseClass { [XmlAttribute] public int I { get; set; } } [XmlInclude(typeof(A))] [XmlInclude(typeof(B))] public class A : BaseClass { [XmlAttribute] public int I1 { get; set; } } [XmlInclude(typeof(A))] [XmlInclude(typeof(B))] public class B : BaseClass { [XmlAttribute] public int I2 { get; set; } [XmlAttribute] public int I3 { get; set; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д