您可以使用ForMember
从简单类型映射到复杂类型,如下所示:
AutoMapper.CreateMap<A,B>()
.ForMember(dest => dest.z.a, opt => opt.MapFrom(src => src.a));
您可以链接任意数量的这些ForMember
根据需要调用。
另一种方法是配置 A 到 C 的映射,以便:
AutoMapper.CreateMap<A,C>();
然后在从 A 到 B 的映射中你可以说:
AutoMapper.CreateMap<A,B>()
.ForMember(dest => dest.z, opt => opt.MapFrom(src => src))
这告诉 AutoMapper 使用从 A 到 C 的映射作为成员z
进行从 A 到 B 的映射时
(自从src
是 A 的一个实例并且dest
是 C 的一个实例)
Update
如果您需要使用您的D
class' Get
方法来完成从 A 到 C 的映射,那么您可以使用ConstructUsing
AutoMapper 中的方法。
AutoMapper.CreateMap<A,B>()
.ForMember(dest => dest.z, opt => opt.ConstructUsing(src => new D().Get(src));