我正在尝试使用Automapper从前端对象层次结构映射到后端对象层次结构。这需要从源对象中的多个源动态创建子组件。我已经在其他地方做到了这一点,没有遇到任何麻烦。但在这种情况下,新创建的对象也需要自己的属性进行映射。
我在下面添加了我正在谈论的通用版本。
color: red;
有没有人知道在较低级别重新调用mapper的方法? (上例中的'定义'。)
答案 0 :(得分:1)
建立GTG的评论:
如果您在DefinitionWebObject
和DefinitionBusinessObject
映射之前将BusinessObject
和WebObject
映射到一起,则应该可以在父地图中调用Mapper.Map。
config.CreateMap<DefinitionWebObject, DefinitionBusinessObject>(); // Create sub-mapping first.
config.CreateMap<BusinessObject, WebObject>()
.ForMember(d => d.Component, opts => opts.ResolveUsing(b =>
{
return new ComponentBusinessObject()
{
Date = b.Property1.Date,
Definition = Mapper.Map<DefinitionBusinessObject>(b.Property2.Definition)
};
}));