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; }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д