取消所有更改并通过深层复制设置回初始数据

时间:2013-05-28 15:19:38

标签: c# serializable deep-copy

在我的应用程序中,我将所有数据存储在静态列表 AllData 中,它继承自;

public class GenericList<T> : BindingList<T>, IList<T> 

我将用户的更改设置为 AllData 的所选项目,我的问题是取消更改。如果用户取消更改,我将再次从数据库中检索所有数据。这不是一个有用的解决方案;这需要时间,创建新的数据库连接等。

我认为在更改之前我已经有了旧值。我可以备份第一个值,如果用户取消更改,则恢复备份值。问题来了;我尝试通过 ObjectCopier

克隆 AllData 的所选项目
public static T Clone<T>(T source)

,并收到错误

  

类型'类XYZ'未标记为可序列化。

是的,我有几个序列化类,其他类没有序列化。我正在尝试克隆的 AllData 所选项目包含我创建的所有数据类型。

我应该把所有课程都归类吗?如是;这会导致任何问题(安全性,性能等)吗?还是有任何有用的取消操作方法?

0 个答案:

没有答案