我最近参与了几个分布式客户端/服务器项目,我们经常遇到的一个痛点是将 DTO 对象转换为我们的实体,反之亦然。我想知道是否有人对这个时间槽有一个“简单”的解决方案?
我想到的一件事是使用反射进行某种翻译......我想你必须确保你的属性名称在线路的每一侧都完全相同 - 但似乎它可能会起作用。
只是在寻找一种方法来避免我的开发中的一些时间沉没。
谢谢!!
我最近参与了几个分布式客户端/服务器项目,我们经常遇到的一个痛点是将 DTO 对象转换为我们的实体,反之亦然。我想知道是否有人对这个时间槽有一个“简单”的解决方案?
我想到的一件事是使用反射进行某种翻译......我想你必须确保你的属性名称在线路的每一侧都完全相同 - 但似乎它可能会起作用。
只是在寻找一种方法来避免我的开发中的一些时间沉没。
谢谢!!
我最近一直在使用AutoMapper,它就像一个魅力。
我已经成功地使用了 XDoclet 之类的工具(尽管编写脚本应该不难)来自动生成传输对象和简单的实体翻译。
也就是说,如果您认为您的实体翻译足够简单,可以使用反射来完成,那么您是否有理由不能只通过线路而不是 DTO 传递实体对象?稍微自定义的序列化可能比完整的 DTO 更好。
使用ValueInjecter,你可以将任何东西映射到任何东西,例如
object <-> object
object <-> Form/WebForm
DataReader -> object
它具有很酷的功能,例如:扁平化和非扁平化
下载包含大量示例(asp.net mvc、web-forms、winforms、单元测试的示例应用程序)