public string Name { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public byte Age { get; set; }
public Role Role { get; set; }
public string Name { get; set; }
public byte Age1 { get; set; }
public string RoleName { get; set; }
public static void Main()
Mapper.CreateMap<User, UserModel>()
.ForMember(m => m.Name, opt => opt.ResolveUsing(e => e.FirstName + " " + e.LastName))
.ForMember(m => m.Age1, opt => opt.MapFrom(e => e.Age))
.ForMember(m => m.RoleName, opt => opt.MapFrom(e => e.Role.Name))
.ForMember(m => m.FirstName, opt => opt.ResolveUsing(e => e.Name.Split(' ')[0]));
Console.WriteLine("Straight Mapping");
Role = new Role {Name = "CoWorker"}
var userModel = Mapper.Map<UserModel>(user);
Console.WriteLine(userModel.Name);
Console.WriteLine(userModel.Age1);
Console.WriteLine(userModel.RoleName);
Console.WriteLine("Reverse Mapping");
var userReverse = Mapper.Map<User>(userModel);
Console.WriteLine(userReverse.FirstName);
Console.WriteLine(userReverse.LastName);
Console.WriteLine(userReverse.Age);
Console.WriteLine(userReverse.Role != null ? userReverse.Role.Name : "ERROR");