用户映射器在ForMember中的automapper

时间:2013-04-11 08:58:48

标签: .net automapper

我想知道是否可以在ForMemeber中“子映射”映射对象。我有一个配置的类a到b的映射。然后我有两个新的类我需要映射c和d,但结构不同所以我必须使用ForMember来映射它们之间的配置映射。但是c和d都具有属性,其属性为源中的用户和目标中的b。有没有办法说使用已经配置的映射为c和d中的属性的内部a到b映射?

1 个答案:

答案 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; }
}

您希望映射类cd中的属性,而无需重新定义ab的映射?

如果是这样,默认情况下会得到。这样的事情应该这样做:

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();
    }
}

如果您反而有其他意思,请更新您的问题以澄清。