using System.Collections.Generic;
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public string DateOfBirth { get; set; }
public User Users { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public DateTime DateOfBirth { get; set; }
public List<UserVM> Users { get; set; }
public string FirstName { get; set; }
public string FirstName { get; set; }
public class DateTimeConverterForString : ITypeConverter<string, DateTime>
public DateTime Convert(ResolutionContext context)
return System.Convert.ToDateTime(context.SourceValue);
public class DateTimeTypeConverter : ITypeConverter<User, List<UserVM>>
public List<UserVM> Convert(ResolutionContext context)
var source = context.SourceValue as User;
Console.WriteLine(source.FirstName);
List<UserVM> destinationsss = new List<UserVM>();
var a = Mapper.Map<UserVM>(source);
return new List<UserVM>();
public static void Main()
Mapper.CreateMap<User, UserVM>().ReverseMap();
Mapper.CreateMap<string,DateTime>().ConvertUsing(new DateTimeConverterForString());
Mapper.CreateMap<User,List<UserVM>>().ConvertUsing(new DateTimeTypeConverter());
Mapper.CreateMap<Person, PersonVM>();
var person = new Person(){ FirstName="dadad" , LastName = "Kohli", Age=27, DateOfBirth = "03-24-1991" , Users = new User{ FirstName = "Ali" } };
var item = Mapper.Map<PersonVM>(person);
Console.WriteLine("\nitem.FirstName : {0} \nitem.LastName : {1} \nitem.Age : {2} \nitem.DateOfBirth : {3} \nitem.FirstName : {4} ",
item.FirstName, item.LastName, item.Age, item.DateOfBirth , item.Users[0].FirstName);