c# - How to Unpack a Parent object into a child object using Automapper? -
i want unpack parent object using automapper , create new child object it:
parent:
public class parent { public child child {get;set;} } public class child { //stuff }
first attempt @ mapping:
mapper.createmap<parent, child>() .formember(dest => dest, opt => opt.mapfrom(src => src.parent.child);
error message:
custom configuration members supported top-level individual members on type.
that makes sense tried resolve myself:
.beforemap((src, dest) => { dest = new child(); });
this didn't work same reason, though argue resolving object.
so, how resolve child object, can create using automapper?
assuming want same object reference result:
mapper.createmap<parent, child>() .convertusing(par => par.child);
here you're telling automapper know how entire mapping, in case means returning inner child
property.
note following true if go route:
parent p = new parent(); child c = mapper.map<child>(p); object.referenceequals(parent.child, c); // true
if wanted copy entire child
instance brand new instance, set mapping child
→ child
, call mapper.map
inside of convertusing
call:
mapper.createmap<parent, child>() .convertusing(par => mapper.map<child>(par.child)); mapper.createmap<child, child>(); parent p = new parent { child = new child { name = "kid" } }; var ch = mapper.map<child>(p); object.referenceequals(parent.child, ch); // false
Comments
Post a Comment