[英]Mapping IEnumerable to class with one list as a property - using AutoMapper
我从第三方api接收到IEnumerable <Class1>。
我想使用Automapper将其映射到以下类:
public class WrapperClass
{
public List<Class2> Items { get; set; }
}
所以本质上我在想我需要两个映射:
IEnumerable<Class1> ----> WrapperClass
_______
Class1 ----> Class2
我将如何在Automapper中进行处理 ?
是的,您必须首先为映射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; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.