Ошибка при создании экземпляра распознавателя пользовательских элементов в AutoMapper 6 - PullRequest
0 голосов
/ 06 декабря 2018

Я использую AutoMapper 6 (AutoMapper.Extensions.Microsoft.DependencyInjection) для сопоставления данных и моделей представления в основном веб-приложении API. Net. У меня есть свойство age для модели представления и использую настраиваемый преобразователь для вычисления возраста в соответствии сдата рождения происходит из модели данных.

Вот как я добавляю AutoMapper в StartupClass:

services.AddAutoMapper(config => config.AddProfile(new AutoMapperProfiles()));

И это класс профиля AutoMapper:

public class AutoMapperProfiles : Profile
{
    public AutoMapperProfiles()
    {
        CreateMap<User, UserDetailDTO>()
            .ForMember(dest => dest.PhotoUrl, opt =>
            {
                opt.MapFrom(src => src.Photos.FirstOrDefault(p => p.IsMain).Url);
            })
        .ForMember(dest => dest.Age, opt =>
        {
            opt.MapFrom<AgeResolverForUserDetail>();
        });

        CreateMap<User, UserListDTO>()
            .ForMember(dest => dest.PhotoUrl, opt =>
            {
                opt.MapFrom(src => src.Photos.FirstOrDefault(p => p.IsMain).Url);
            })
        .ForMember(dest => dest.Age, opt =>
        {
            opt.MapFrom<AgeResolverForUserList>();
        });

        CreateMap<Photo, PhotoDTO>();
    }
}

И этоAgeResolverForUserDetail:

public class AgeResolverForUserDetail : IValueResolver<User, UserDetailDTO, int>
{
    public int Resolve(User source, UserDetailDTO destination, int destMember, ResolutionContext context)
    {
        return source.BirthDate.CalculateAge();
    }
}

Когда я запускаю свое приложение и пытаюсь получить сведения о пользователе, объекты сопоставления выдают исключение:

При обработке запроса возникло необработанное исключение.AutoMapperMappingException: не удается создать экземпляр типа DatingApp.Utility.AutoMapperUtilities.AgeResolverForUserDetail AutoMapper.MappingOperationOptions.CreateInstance () в MappingOperationOptions.cs, строка 47 AutoMapperMappingException: типы сопоставления ошибок.Типы сопоставления: Пользователь -> UserDetailDTO DatingApp.Models.DataModels.User -> DatingApp.Models.ViewModels.UserDetailDTO Тип Конфигурация карты Тип: Пользователь -> UserDetailDTO DatingApp.Models.DataModels.User -> DatingApp.Models.ViewModels.UserDetailD DesttailTOTOВозраст

Можете ли вы дать мне решение для этого?

спасибо

...