Проблема с сопоставлением инициализации конструктора Auto Mapper - PullRequest
0 голосов
/ 17 июня 2020

У меня есть следующие конфигурации сопоставления: -

Инициализированные данные: -

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, но не могу решить эту проблему.

Высоко ценю вашу помощь!

1 Ответ

0 голосов
/ 17 июня 2020

Попробуйте позвонить по номеру AssertConfigurationIsValid. Отметьте http://docs.automapper.org/en/latest/Configuration-validation.html.

Ваши свойства Source равны private. Я полагаю, вы имели в виду public.

...