C#面试题更新 2026-08-03

请解释在 C# 中利用 AutoMapper 实现对象映射的具体方式有哪些?

考察说明

考查对 AutoMapper 核心用法的掌握程度,包括配置、映射执行及常见场景。

回答思路

  1. 【回答框架 1】AutoMapper 是 C# 中用于对象间映射的库,核心思路是通过约定和配置减少手动赋值。基本用法是创建 MapperConfiguration 并指定映射对,例如 CreateMap<Source, Destination>()。
  2. 【回答框架 2】执行映射时,通过 IMapper 接口调用 Map 方法,如 mapper.Map<Destination>(source) 或使用非泛型重载。若依赖注入可用,可将 IMapper 注册到容器中。
  3. 【回答框架 3】对于属性名不一致或需要自定义逻辑的映射,可使用 ForMember 配置,例如 cfg.CreateMap<Source, Destination>().ForMember(dest => dest.DestProp, opt => opt.MapFrom(src => src.SourceProp))。
  4. 【回答框架 4】支持复杂类型、集合和嵌套映射,默认按约定匹配属性名。若需要忽略属性、条件映射或值转换,可使用相应配置选项。
  5. 【关键点 1】需先创建 MapperConfiguration 并调用 CreateMap 配置映射对。
  6. 【关键点 2】通过 IMapper 接口的 Map 方法执行映射。
  7. 【关键点 3】可用 ForMember 自定义属性映射逻辑。
  8. 【关键点 4】集合和嵌套映射默认支持,注意循环引用避免死循环。
  9. 【易错点 1】忘记调用 AssertConfigurationIsValid 可能导致配置错误在运行时才暴露。
  10. 【易错点 2】过度使用 AutoMapper 处理简单映射可能降低可读性,应权衡手动赋值。
  11. 【易错点 3】映射循环引用时需配置 MaxDepth 或指定引用处理方式。