我正在使用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 =“Custom 成员配置仅支持顶级个人 一个类型的成员。“source =”AutoMapper“
detail =“AutoMapper.AutoMapperConfigurationException:Custom 成员配置仅支持顶级个人 一个类型的成员。 在 AutoMapper.Impl.ReflectionHelper.FindProperty(LambdaExpression lambdaExpression) 在 AutoMapper.MappingExpression2.ForMember(Expression
1 destinationMember,Action`1 memberOptions) 在......
答案 0 :(得分:6)
你很接近 - 只需要制作阵列而不是设置个人成员
Mapper.CreateMap<Obj1, Obj2>().ForMember(d => d.Ids, o => o.MapFrom(s => new[]{s.Id}));