如何使用AutoMapper配置集合类型的映射?

时间:2017-01-31 11:22:20

标签: c# .net mapping automapper

例如,我实现了两个类:

public class A
{
    public List<C> Items { get; set; }
}

public class B
{
    public IImmutableList<C> Items { get; set; }
}

public class C 
{
}

当我尝试将A映射到B时,反之亦然,我收到异常,因为List<string>无法转换为IImmutable<string>

可能我可以为A<->B提供映射,但由于它在我的解决方案中将是一个非常常见的模式,我想避免手动映射可能属于同一情况的每个类。< / p>

无论如何,我可以使用泛型类型定义将整个映射从集合类型推广到另一个集合类型吗?

这是我想要避免的

mapperConfig.CreateMap<A, B>()
    .ForMember(a => a.Items, opts => opts.Ignore())
    .AfterMap
    (
        (source, target) =>
        {
            target.Items = source.Items.ToImmutableList();
        }
    );

0 个答案:

没有答案