public void ComplexPolymorphism() { Mapper.CreateMap <BaseClass, BaseDto>() .Include <Class, Dto>() .ForMember(dest => dest.IgnoreMe, o => o.Ignore()) .ForMember(dest => dest.DtoVal1, o => o.MapFrom(src => src.Val1)); Mapper.CreateMap <Class, Dto>() .Include <Subclass, SubDto>() .ForMember(dest => dest.DtoVal2, o => o.MapFrom(src => src.Val2)); Mapper.CreateMap <Subclass, SubDto>() .ForMember(dest => dest.DtoVal3, o => o.MapFrom(src => src.Val3)); Mapper.AssertConfigurationIsValid(); BaseClass c = new Subclass { Val1 = 1, Val2 = 2, Val3 = 3, IgnoreMe = 100 }; BaseDto result = Mapper.Map <BaseClass, BaseDto>(c); Assert.That(result.DtoVal1, Is.EqualTo(1)); Assert.That((result as Dto).DtoVal2, Is.EqualTo(2)); Assert.That((result as SubDto).DtoVal3, Is.EqualTo(3)); // Would fail... //Assert.That((result as SubDto).IgnoreMe, Is.EqualTo(0)); }
public void ComplexPolymorphism() { Mapper.CreateMap<BaseClass, BaseDto>() .Include<Class, Dto>() .ForMember(dest => dest.IgnoreMe, o => o.Ignore()) .ForMember(dest => dest.DtoVal1, o => o.MapFrom(src => src.Val1)); Mapper.CreateMap<Class, Dto>() .Include<Subclass, SubDto>() .ForMember(dest => dest.DtoVal2, o => o.MapFrom(src => src.Val2)); Mapper.CreateMap<Subclass, SubDto>() .ForMember(dest => dest.DtoVal3, o => o.MapFrom(src => src.Val3)); Mapper.AssertConfigurationIsValid(); BaseClass c = new Subclass { Val1 = 1, Val2 = 2, Val3 = 3, IgnoreMe = 100 }; BaseDto result = Mapper.Map<BaseClass, BaseDto>(c); Assert.That(result.DtoVal1, Is.EqualTo(1)); Assert.That((result as Dto).DtoVal2, Is.EqualTo(2)); Assert.That((result as SubDto).DtoVal3, Is.EqualTo(3)); // Would fail... //Assert.That((result as SubDto).IgnoreMe, Is.EqualTo(0)); }