'Simple way to add extra parameter to Automapper ForMember
So, I have a mapping ObjectFrom to ObjectTo. ' All mappings can be done ObjectFrom.propX -> ObjectTo.propX2. But there is also a property in ObjectTo that needs to have a fixed value (for each mapping), lets call it "CallerName", that has nothing to do with ObjectFrom.
Can I in some way sneak in an extra parameter into the mapping? Id prefer not to wrap my ObjectFrom nor use AfterMap(), since I want to force caller to provide CallerName to make sure its gets filled.
When googling on this Ive found one solution more complex then the other. Is there a simple way to do this?
(Asp Net Core, latest version of automapper)
Solution 1:[1]
When calling Map
you can pass in extra objects by using key-value and a custom resolver to get the object from the mapping context.
mapper.Map<Source, Dest>(src, opt => opt.Items["Foo"] = "Bar");
This is how to setup the mapping for this custom resolver
cfg.CreateMap<Source, Dest>()
.ForMember(dest => dest.Foo, opt => opt.MapFrom((src, dest, destMember, context) => context.Items["Foo"]
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |