使用C#中的Automapper将源属性值转换为自定义目标值

时间:2019-02-18 12:41:53

标签: c# asp.net automapper asp.net-core-2.0

我有一个

Source.foo = 1;

和类型

Destination.foo

字符串,我想根据我在Source.foo中获得的数字选择自己要分配给Destination.foo的值。

有没有一种我可以改变的方式

Source.foo = 1 to Destination.foo = "A" 
Source.foo = 2 to Destination.foo = "B"

以此类推?

1 个答案:

答案 0 :(得分:2)

是的,您可以执行以下操作:

Mapper.CreateMap<Source, Destination>()
.ForMember(x => x.foo, cfg => cfg.MapFrom(x => GetFooValue(x)));

然后您可以编写GetFooValue以返回所需的任何内容。例如:

private string GetFooValue(int foo){
    if(foo == 1)
        return "A";
    ...
    ...
}