我需要使用源对象上的公共方法将目标对象的列表映射到源。
e.g。
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; }
}
所以在伪伪语言中,映射应该是: Source.List中的Mapper.CreateMap foreach项,调用Source.Add(item)
可以这样做吗?
答案 0 :(得分:5)
是。使用ConvertUsing语法:
Mapper.CreateMap<Source, Destination>()
.ConvertUsing(s =>
{
var d = new Destination();
foreach(var i in s.List)
{
d.Add(i);
}
return d;
});
答案 1 :(得分:0)
我不这么认为。
AutoMapper自定义类型转换器仅接受来源并返回目的地。
但是,为什么不直接实现从int []到Destination的隐式类型转换? http://www.csharphelp.com/2006/10/type-conversion-and-conversion-operators-in-c/