项目

数据传输对象最佳实践与规范

本文档基于领域驱动设计原则,为模块和应用程序中实现数据传输对象类提供最佳实践。

请确保已先行阅读 数据传输对象 文档。

通用规范

  • 应当将DTO定义在应用契约包中。
  • 应当在可能且必要时继承预构建的基础DTO类(如EntityDto<TKey>CreationAuditedEntityDto<TKey>AuditedEntityDto<TKey>FullAuditedEntityDto<TKey>等)。
    • 应当聚合根继承可扩展DTO类(如ExtensibleAuditedEntityDto<TKey>),因为聚合根是可扩展对象,通过这种方式可以将额外属性映射到DTO。
  • 应当为DTO成员定义公共getter和setter
  • 应当对作为服务输入的DTO属性使用数据注解进行验证
  • 不应在DTO中添加任何逻辑,除非必要时实现IValidatableObject
  • 应当将所有DTO标记为**[Serializable]**,因为它们本身可序列化,且开发者可能希望对其进行二进制序列化。

另请参阅

在本文档中