我想知道是否可以在ForMemeber中“子映射”映射对象。我有一个配置的类a到b的映射。然后我有两个新的类我需要映射c和d,但结构不同所以我必须使用ForMember来映射它们之间的配置映射。但是c和d都具有属性,其属性为源中的用户和目标中的b。有没有办法说使用已经配置的映射为c和d中的属性的内部a到b映射?
答案 0 :(得分:1)
如果我理解这一点,你会有类似
的东西public class a
{
public int Foo { get; set; }
}
public class b
{
public int Bar { get; set; }
}
public class c
{
public a Baz { get; set; }
}
public class d
{
public b Qux { get; set; }
}
您希望映射类c
和d
中的属性,而无需重新定义a
和b
的映射?
如果是这样,默认情况下会得到。这样的事情应该这样做:
public static class AutoMapperConfigurator
{
public static void Configure()
{
AutoMapper.Mapper.CreateMap<a, b>()
.ForMember(dest => dest.Bar, opt => opt.MapFrom(src => src.Foo));
AutoMapper.Mapper.CreateMap<c, d>()
.ForMember(dest => dest.Qux, opt => opt.MapFrom(src => src.Baz));
AutoMapper.Mapper.AssertConfigurationIsValid();
}
}
如果您反而有其他意思,请更新您的问题以澄清。