【.NET 生态】AutoMapper
AutoMapper 是一个对象转换映射工具,可以将一个对象的属性映射到另外一个对象上。
最佳实践
封装成泛型扩展方法(不用提前配置)
public static TDestination MapTo<TDestination, TSource>(this TSource source)
where TDestination : class
where TSource : class
{
if (source == null) return default(TDestination);
var config = new MapperConfiguration(cfg => cfg.CreateMap<TSource, TDestination>());
var mapper = config.CreateMapper();
return mapper.Map<TDestination>(source);
}
public static IEnumerable<TDestination> MapToList<TSource, TDestination>(
this IEnumerable<TSource> source)
where TDestination : class
where TSource : class
{
if (source == null) return new List<TDestination>();
var config = new MapperConfiguration(cfg => cfg.CreateMap<TSource, TDestination>());
var mapper = config.CreateMapper();
return mapper.Map<List<TDestination>>(source);
}