构造函数
AutoMapper
可以利用源类型的成员, 映射到目标类型的构造函数上. 配置与用法不变.
使用场景(属性没有 setter, 通过构造函数来初始化时)
但是如果构造函数的参数名与源类型的属性名不一致, 就需要配置了:
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<Source, Destination>()
.ForCtorParam("构造函数的参数名", opt => opt.From(src => src.XXX));
});
它也适用于 LINQ 投影与内存映射.
也可以配置禁用构造函数映射, 或配置哪些构造函数需要映射:
// 禁用
var configuration = new MapperConfiguration(cfg => cfg.DisableConstructorMapping());
// 只处理 public 构造函数
var configuration = new MapperConfiguration(cfg => cfg.ShouldUseConstructor = constructor => constructor.IsPublic);
如果映射到
Record
, 考虑使用public
构造函数.