Пример #1
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));
        }
Пример #2
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));
        }