2010-08-04 37 views
0

这是我使用的代码。我不断收到XML文档的错误如何将具有相同基类的多个对象序列化为xml?

[Serializable] 
[XmlRoot("Command")] 
public class Command 
{ 
    [XmlElement("CommandType")] 
    public CommandType CommandType { get; set; } 
} 

[Serializable] 
[XmlRoot("DelayCommand")] 
[XmlInclude(typeof(Command))] 
public class DelayCommand : Command 
{ 
    [XmlElement("Delay")] 
    public int Delay { get; set; } 

    public DelayCommand() 
    { 
     CommandType = CommandType.Delay; 
    } 
} 

[Serializable] 
[XmlRoot("HeartbeatCommand")] 
[XmlInclude(typeof(Command))] 
public class HeartbeatCommand : Command 
{ 
    [XmlElement("HeartbeatOn")] 
    public bool HeartbeatOn { get; set; } 

    public HeartbeatCommand() 
    { 
     CommandType = CommandType.Heartbeat; 
    } 
} 

而这里的实际序列

FileStream Filewriter = new FileStream(path, FileMode.OpenOrCreate); 

    XmlSerializer XmlFormat = new XmlSerializer(typeof(Command[])); // Make class as an array. 

    List<Command> commands = new List<Command>(); 
    foreach (DataGridViewRow row in gridCommand.Rows) 
    { 
     commands.Add(row.Tag as Command); 
    } 

    XmlFormat.Serialize(Filewriter, commands.ToArray()); 

回答

0

看起来this可能是你的答案代码。

+0

该示例没有显示多个不同的被序列化的继承类。他只有1个类,并正在序列化该类的数组 – Tom 2010-08-05 14:10:23

相关问题