1

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

4

1 回答 1

2

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

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

选择,选择!

于 2013-06-09T23:56:19.070 回答