Метод вызова Autmapper на каждой карте недвижимости - PullRequest
0 голосов
/ 07 февраля 2020

Я хочу вызвать специфический c метод xyz () для каждого свойства, отображаемого в конфигурации generi c mapper. Возможно ли это?

Я использую Automapper v 9. Цель - вызвать метод для каждого свойства, сопоставленного Automapper, для проверки добавления и удаления данных во время выполнения.

public static IMapper CreateMapper<TSource, TDestination>()
        {
            var config = new MapperConfiguration(
                cfg =>
                {
                    cfg.Advanced.AllowAdditiveTypeMapCreation = true;
                    cfg.AllowNullDestinationValues = true;
                    cfg.AllowNullCollections = true;
                    cfg.CreateMap<TSource, TDestination>()
                    .PreserveReferences()
                });

            config.AssertConfigurationIsValid();

            return config.CreateMapper();
        }

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

Да, вы можете звонить как хотите. Я уже использую, как это.

  CreateMap<UserMessage, USER>()                    
                .ForMember(dest => dest.X, opts => opts.MapFrom(src => src.A!= null ? MessageExtensions.GetCvTitle(src.A) : string.Empty))
                .ForMember(dest => dest.Y, opts => opts.MapFrom(src => MessageExtensions.GetFacultyName(src.B)))
                .ForMember(dest => dest.Z, opts => opts.MapFrom(src => MessageExtensions.GetDepartmentName(src.C)))
                .ForMember(dest => dest.T, opts => opts.MapFrom(src => MessageExtensions.GetProgramName(src.D)))
0 голосов
/ 07 февраля 2020

Да, конечно, вы можете сделать это в соответствии с вашими потребностями, я имею в виду до карты или после карты по всему миру! Используйте этот официальный Auto-mapper Do c. для справки

...