Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class BaseClass
- {
- public string PropertyA { get; set; }
- }
- class DerivedClass: BaseClass
- {
- public string PropertyB { get; set; }
- }
- class ContainerClass
- {
- public DerivedClass ComplexProperty { get; set; }
- public string PropertyC { get; set; }
- }
- class SourceClass
- {
- public string PropertyA { get; set; }
- public string PropertyB { get; set; }
- public string PropertyC { get; set; }
- }
- Mapper.CreateMap<SourceClass, ContainerClass>()
- .ForMember(d => d.ComplexProperty, o => o.MapFrom(s => Mapper.Map<DerivedClass>(s)))
- .AfterMap((s, d) => System.Diagnostics.Debug.WriteLine("SourceClass-> ContainerClass mapped"));
- Mapper.CreateMap<SourceClass, DerivedClass>()
- .AfterMap((s, d) => System.Diagnostics.Debug.WriteLine("SourceClass -> DerivedClass mapped"));
- Mapper.CreateMap<BaseClass, DerivedClass>()
- .AfterMap((s, d) => System.Diagnostics.Debug.WriteLine("BaseClass -> DerivedClass mapped"));
- var source = new SourceClass {
- PropertyA = "ValueA",
- PropertyB = "ValueB",
- PropertyC = "ValueC",
- };
- var destination = Mapper.Map<ContainerClass>(source);
- Console.WriteLine("PropertyA: " + destination?.ComplexProperty?.PropertyA);
- Console.WriteLine("PropertyB: " + destination?.ComplexProperty?.PropertyB);
- Console.WriteLine("PropertyC: " + destination?.PropertyC);
- PropertyA: ValueA
- PropertyB:
- PropertyC: ValueC
- SourceClass -> DerivedClass mapped
- BaseClass -> DerivedClass mapped
- SourceClass -> ContainerClass mapped
Add Comment
Please, Sign In to add comment