public class Source
{
public List Values { get; set; }
}
public class Destination
{
public List Values { get; set; }
}
public class ListResolver : IValueResolver>
{
public List Resolve(Source source, Destination destination, List destMember, ResolutionContext context)
{
if (destMember == null)
return source.Values;
return destMember;
}
}
// 配置Automapper映射
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap()
.ForMember(dest => dest.Values, opts => opts.UseDestinationValue())
.ForMember(dest => dest.Values, opts => opts.ResolveUsing());
});
// 执行映射
var source = new Source { Values = new List { 1, 2, 3 } };
var destination = new Destination { Values = new List { 4, 5 } };
var mapper = config.CreateMapper();
mapper.Map(source, destination);
// destination.Values 现在应该是[4, 5, 1, 2, 3]