我需要使用源对象上的公共(public)方法将列表从目标对象映射到源。
例如
public class Destination
{
private IList<int> List = new List<int>();
public void Add(int i) { List.Add(i); }
}
public class Source
{
public int[] List { get; set; }
}
所以在伪伪语言中映射应该是: Mapper.CreateMap 为 Source.List 中的每个项目调用 Source.Add(item)
这可以做到吗?
最佳答案
是的。使用 ConvertUsing 语法:
Mapper.CreateMap<Source, Destination>()
.ConvertUsing(s =>
{
var d = new Destination();
foreach(var i in s.List)
{
d.Add(i);
}
return d;
});
关于AutoMapper 使用操作来填充目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5004235/