Представьте себе, что это мой сценарий:
public abstract class Foo
{
public abstract int X { get; set; }
}
public class FooA : Foo
{
public override int X { get; set; }
public int Y { get; set; }
}
public class FooB : Foo
{
public override int X { get; set; }
public int Z { get; set; }
}
Это сервис, в котором у меня есть несколько объектов для сериализации.
public class FooService
{
public List<Foo> GetModels()
{
return new List<Foo>()
{
new FooA() { X = 3, Y = 6 },
new FooB() { X = 5, Z = 10 }
};
}
}
И это метод, в котором я могу 'сериализовать мои объекты, это исключение.Я хочу сериализовать производные классы.
private void SerializeObjects()
{
FooService service = new FooService();
var a = service.GetModels();
XmlSerializer x = new XmlSerializer(a.GetType());
TextWriter writer = new StreamWriter("A.xml");
x.Serialize(writer, a);
writer.Close();
}