agilelabs-fx-docs main topics/automapper.md

AutoMapper

本页聚合对象映射的注册方式、Profile 约定和项目级 resolver 扩展方式。

适用场景

  • DTO、实体、领域模型之间的转换。
  • 统一注册 Profile
  • 需要在项目层补时间、用户、上下文相关 resolver。

必须遵守

  • 所有映射定义统一放在 Profile 中。
  • Profile 必须可被无参实例化,以便框架扫描注册。
  • 不在业务层手动构造独立 MapperConfiguration 作为常规方案。

推荐做法

  • 通用转换器与系统级 Profile 放公共库。
  • 业务 Profile 放业务程序集。
  • 复杂业务把用户时区、会话、上下文相关转换放到项目级 resolver,而不是把逻辑塞进 Controller。

常见坑

  • 映射规则散落在多个静态工具类。
  • 映射初始化与宿主 Json、序列化语义不一致。
  • 在业务代码中临时 new MapperConfiguration(...)

真实用例

  • gmandarin-backendCurrentUserTimeResolverUserLocalTimeResolverResloveUTCTimeByGmLocalTimezone
  • niusys-webapi:宿主阶段集中注册 AutoMapper。

相关页面