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());
该示例没有显示多个不同的被序列化的继承类。他只有1个类,并正在序列化该类的数组 – Tom 2010-08-05 14:10:23