目前我正在使用List创建一种历史记录日志。我通过简单地使用XML序列化程序对其进行序列化来保存此列表,但每当我序列化列表然后反序列化它时,顺序与我第一次创建列表时的顺序不同。
例如,当我第一次创建列表时,它可能按此顺序
然而,当我序列化/反序列化时,它可能变成类似
的东西串行化时有没有办法或强制序列化程序保留列表的顺序? (我发现它实际上以错误的顺序保存它开始)
当前代码:
public static List<StoredData> clipboardData = new List<StoredData>();
private void SaveClipboard()
{
XmlSerializer serializer = new XmlSerializer(typeof(List<StoredData>));
using (StreamWriter stream = new StreamWriter(historyFile))
{
serializer.Serialize(stream, clipboardData);
}
Console.WriteLine("Saved");
}
StoredData Class
[Serializable]
public class StoredData
{
public String storedClip;
public DateTime storedTime;
}
答案 0 :(得分:-1)
这是一种在序列化XML时保留顺序的方法
[Serializable]
public class StoredData
{
[Datamember(Name = "Clip", Order = 1)]
public String storedClip;
[Datamember(Name = "Time", Order = 2)]
public DateTime storedTime;
}