using System.Collections.Generic;
public static void Main()
Console.WriteLine("Hello World");
var source = new CategoryStatus
Subgroup = new CategorySubgroup
SubgroupCode = "SubgroupCode",
CategoryGroup = new CategoryGroup { GroupCode = "SubgroupCode" }
var result = Mapper.Map<Dest, CategoryStatus>(source);
public string SubgroupCode { get; set; }
public string GroupCode { get; set; }
public class CategoryStatus
public CategorySubgroup Subgroup { get; set; }
public class CategorySubgroup
public string SubgroupCode { get; set; }
public CategoryGroup CategoryGroup { get; set; }
public class CategoryGroup
public string GroupCode { get; set; }
public static class Mapper
private static IMapper mapper;
var cfg2 = new MapperConfiguration(cfg => {
cfg.CreateMap<CategoryStatus, Dest>()
.IncludeMembers(x => x.Subgroup);
cfg.CreateMap<CategoryGroup, Dest>();
cfg.CreateMap<CategorySubgroup, Dest>()
.IncludeMembers(x => x.CategoryGroup);
mapper = cfg2.CreateMapper();
public static TDest Map<TDest, TSource>(this TSource source, Action<IMappingOperationOptions> action = null)
return action == null ? mapper.Map<TDest>(source) : mapper.Map<TDest>(source, action);
public static IReadOnlyList<TDest> Map<TDest, TSource>(this IEnumerable<TSource> source)
return source.Select(e => e.Map<TDest, TSource>()).ToList();