想象一下,這是我的情景:如何在Xml中序列化派生類?
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();
}
什麼是例外?你有什麼嘗試? – Vache 2012-03-22 21:19:52
什麼是例外文本?我敢打賭,它抱怨已知的類型,並告訴你該怎麼做。 – 2012-03-22 21:20:25
@Vache這是我的錯誤:生成XML文檔時發生錯誤。 – 2012-03-22 21:24:07