Automapper 支持从一个集合类型映射到另一个集合类型。但当从 collection 映射时,会出现错误。因为 Automapper 默认情况下不支持 double 类型的映射。
要解决这个问题,我们需要注册 Automapper 的另一种映射配置方式:CreateMap from double to double。这种方式会映射相同类型的对象,而不仅仅是复制属性。
以下是解决此问题的代码示例:
// 注册 Automapper 配置
var config = new MapperConfiguration(cfg =>
{
// 注册 double 到 double 的映射配置
cfg.CreateMap();
// 注册 collection 到 collection 的映射配置
cfg.CreateMap, IEnumerable>()
.ConvertUsing((IEnumerable source) =>
{
// 将每个元素映射到新的集合中
return source.Select(item => Mapper.Map(item));
});
});
// 使用 Automapper 进行映射
var source = new List { 1.0, 2.0, 3.0 };
var destination = Mapper.Map, IEnumerable>(source);