【问题标题】:Cloning a DTO in C#在 C# 中克隆 DTO
【发布时间】:2011-05-03 05:39:41
【问题描述】:

目前要克隆我的 DTO,我正在实现 IClonable,但这(以及克隆 ctor 之类的替代方案)意味着我需要将实现逻辑添加到我的(否则)纯数据对象中。

是否有更好的方法来克隆 DTO,或者是否包含被认为可以的克隆逻辑?

【问题讨论】:

  • "ICloneable 现在被认为是一个糟糕的 API,因为它没有指定结果是深拷贝还是浅拷贝"
  • 为什么要克隆 DTO?应该没有必要。
  • 为什么没有必要?我可以想到很多情况,您希望创建第二个副本数据集,您可以独立于原始数据集进行更改。

标签: c# clone dto


【解决方案1】:

这样的逻辑是如此基本,以至于我认为它被延伸到称之为实现逻辑。以这种方式克隆可能更有意义:

  1. 您可以调用 MemberwiseClone 来制作浅拷贝
  2. DTO 知道克隆自身所需的一切
  3. 您不必为此创建单独的对象或依赖于反射的助手

在我看来,不将克隆逻辑添加到 DTO 中显然是过度遵循架构模式的一个例子。

【讨论】:

  • 谢谢 - 这几乎是我的观点,但我对使用 DTO 比较陌生,想确保我没有做傻事
猜你喜欢
  • 2011-02-04
  • 2018-09-18
  • 2015-03-27
  • 1970-01-01
  • 2011-02-08
  • 2023-03-27
  • 1970-01-01
  • 2011-06-30
相关资源
最近更新 更多