例如,我实现了两个类:
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();
}
);