c# - Map just one field with Automapper -


i'm using automapper define mapping configuration between objects. need retrieve single mapped values destination based on configuration.

let's have domain object

class person {     public string firstname { get; set; }     public string lastname { get; set; } } 

and corresponding dto

class persondto {     public string fullname { get; set; } } 

and mapping

mapper.createmap<person, persondto>()     .formember(         dest => dest.fullname,          opts => opts.mapfrom(src => src.firstname + " " + src.lastname)); 

i'd method mapper.mapfield<persondto>(person, x => x.fullname) returns 1 mapped value (that assigned specified field in full mapping). there way can without mapping whole object , extracting value result?

first create resolver , use resolve using method in mapper call.

public class personnameresolver : valueresolver<person, persondto> {     protected override persondto resolvecore(person source)     {         return new persondto         {             firstname = source.firstname,             lastname = source.lastname         };     } } 

once created, use following in mapper call.

mapper.createmap<person, persondto>()     .formember(         dest => dest.name,          opts => opts.resolveusing<personnameresolver>().frommember(o => o)) 

Comments