我有一个非常通用的对象,我想使用AutomMapper映射到目标类型,但我想根据源类型中的属性值将其映射到不同的类型。例如,假设我有:
public class Source
{
public string Discriminator { get; }
public string ValueA { get; }
public string ValueB { get; }
}
public class Target
{
public string Value { get; set; }
}
如果Source.Discriminator ==“A”,我想将Source.ValueA映射到Target.Value,如果Source.Discriminator ==“B”,我想将Source.ValueB映射到Target.Value。
使用AutoMapper可以实现吗?
答案 0 :(得分:2)
您可以这样做:
Mapper.Map<Spurce, Target>().ForMember(x => x.Value, x => x.MapFrom(y => {
if(y.Discriminator == "A")
return y.ValueA;
return y.ValueB;
});