为什么AutoMapper int到int[]数组出现异常

本文关键字:int 数组 异常 AutoMapper 为什么 | 更新日期: 2023-09-27 17:58:22

我使用的是AutoMapper对象映射器,但得到的异常是"成员的自定义配置仅支持类型上的顶级单个成员。"

基本上我有

public class Obj1 
{ 
    public int Id {get;set;} 
} 

public class Obj2 
{ 
    public int[] Ids { get; set; } 
} 

当我尝试创建类似的映射时,会发生异常;

Mapper
    .CreateMap<Obj1, Obj2>()
    .ForMember(d => d.Ids[0], o => o.MapFrom(s => s.Id)
);

为什么会发生这种情况?我想要实现的是,当对象进行映射时,源中的单个int Id被映射到目标int数组中的第一个元素,例如[0]。完全的例外是

type="AutoMapper.AutoMapperConfigurationException"message="自定义成员的配置仅支持顶级个人类型上的成员。"source="AutoMapper"
detail="AutoMapper.AutoMapperConfiguration异常:自定义成员的配置仅支持顶级个人类型上的成员 ;在AutoMapper.Impl.ReflectionHelper.FindProperty(LambdaExpressionlambdaExpression) ;在AutoMapper-MappingExpression 2.ForMember(Expression 1destinationMember,操作`1 memberOptions) ;在

为什么AutoMapper int到int[]数组出现异常

您已经接近了-只需要制作数组,而不是设置单个成员

Mapper.CreateMap<Obj1, Obj2>().ForMember(d => d.Ids, o => o.MapFrom(s => new[]{s.Id}));