我收到一个IEnumerable< Class1>来自第三方api。
我想使用Automapper将它映射到以下类:
public class WrapperClass
{
public List<Class2> Items { get; set; }
}
基本上我认为我需要两个映射:
IEnumerable<Class1> ----> WrapperClass
_______
Class1 ----> Class2
我如何在 Automapper ?
中进行此操作答案 0 :(得分:2)
是的,您必须首先为地图Class1到Class2创建映射,如:
AutoMapper.Mapper.CreateMap<Class1, Class2>().ForMember(x => x.A, y => y.MapFrom(z => z.B));
然后在类上创建地图集合的映射,如:
AutoMapper.Mapper.CreateMap<IEnumerable<Class1>, WrapperClass>().ForMember(x => x.Items, y => y.MapFrom(z => z));
最后你可以像:
一样使用它var wrapperClass = AutoMapper.Mapper.Map<IEnumerable<Class1>, WrapperClass>(/* list */);
以下三个用于此示例的类:
public class WrapperClass
{
public List<Class2> Items { get; set; }
}
public class Class2 {
public int A { get; set; }
}
public class Class1
{
public int B { get; set; }
}