IEditableObject Sophositicated实现

时间:2013-06-09 23:42:00

标签: c# .net wpf

我正在寻找支持脏数据跟踪的IEditableObject实现,它不仅适用于具有ValueType(原始)属性的单个对象,而且可以包含可能包含引用和集合属性的整个对象图。如果没有这样的实施,你会提供一些指导或提示,因为我很快就需要这个吗?

1 个答案:

答案 0 :(得分:2)

我看到了几个可能的解决方案:

  • 找到一个支持这个的组件套件(我看过在DevExpress套件之上构建的框架可以做到这一点,但不确定它是否已经出现了)
  • 找到一个代码生成器来帮助减少你需要编写的样板代码(NuGet可能是一个很好的起点)。
  • 使用PostSharp注入代码来处理问题(或其他一些AOP工具)
  • 将所有数据包装在Transactional中并使用VolatileTransactionManager(IDesign已在其网站上发布此解决方案的代码,但我会担心性能)
  • 使您的数据结构可以深度克隆,并在克隆上工作直到提交更改。这个解决方案可能是最容易编写和调试的。像Fasterflect这样的库包含深度克隆对象图的扩展,或者您可以简单地序列化/反序列化以生成副本。

选择,选择!