У меня есть следующие конфигурации сопоставления: -
Инициализированные данные: -
private static IEnumerable<Source> InitializeData()
{
var source= new[]
{
new Source("John", "Doe", "1111111111"),
new Source("Jack", "Handsome", "2222222222"),
new Source("Joe", "Mackenze", "3333333333")
};
return source;
}
Модель источника:
public class Source
{
private string First { get; set; }
private string Last { get; set; }
private string Phone { get; set; }
public Source(string first, string last, string phone)
{
First = first;
Last = last;
Phone = phone;
}
}
Модель назначения
public class Destination
{
public string First { get; set; }
public string Last { get; set; }
public string Phone { get; set; }
}
Main
static void Main(string[] args)
{
var config = new MapperConfiguration(cfg =>
{
cfg.AllowNullCollections = true;
cfg.CreateMap<Source, Destination>().ReverseMap();
});
var mapper = new Mapper(config);
var source= InitializeData();
var people = mapper.Map<IEnumerable<Destination>>(source);
foreach (var p in people)
{
Console.WriteLine("Name: {0}-{1} Phone: {2}", p.First, p.Last, p.Phone);
}
Console.ReadLine();
}
Описание проблем:
Я изо всех сил пытался понять сопоставление AutoMapper между исходной и целевой моделями. В моей исходной модели есть конструктор для инициализации или приема данных извне. Он отлично работает, когда я удалил исходный конструктор из модели, что означает, что плоское отображение работает нормально, но инициализация конструктора имеет проблему. Когда я отлаживаю в VS2019, он показывает количество записей, но все поля пустые / нулевые.
Что не так с маппингом выше. Я просмотрел справочную документацию AutoMapper, но не могу решить эту проблему.
Высоко ценю вашу помощь!