, так что это мой первый вопрос о переполнении стека, и я надеюсь, что смогу дать достаточно подробностей для помощи. Я пытаюсь использовать AutoMappper с do tnet 3.1 с внедрением зависимостей, но, похоже, он не регистрирует мои карты так, как он говорит.
Ошибка, которую я получаю:
AutoMapper.AutoMapperMappingException: Missing type map configuration or unsupported mapping.
Mapping types:
User -> UserCustomerDto
В моем файле Startup.cs у меня есть: services.AddAutoMapper(typeof(Startup));
Внутри IServiceCollection
области
У меня есть User
модель и созданы мои различные модели DTO.
Вот пример модели профиля, которая у меня есть:
public class UserCustomerProfile : Profile
{
public UserCustomerProfile()
{
CreateMap<User, UserCustomerDto>();
CreateMap<UserCustomerDto, User>();
}
}
В моих моделях DTO есть все поля, которые есть в моей пользовательской модели, минус несколько, те, которые я не хочу отображать в пользовательском интерфейсе.
Документация была довольно трудной для следования, так как есть примеры внедрения без зависимостей, а также до 9.0, где конфигурация требовалась во время запуска проекта.
Я также пытался использовать .ReverseMap()
на CreateMap()
, но это тоже не сработало.
Я внедряю внутри службы, которую я использую:
private readonly IMapper _mapper;
public UserService(IMapper mapper)
{
_mapper = mapper;
}
И там, где ошибка выкладывается, находится внутри этой службы с этот код: _mapper.Map<UserCustomerDto>(user)
Я довольно плохо знаком с сделайте tnet core и C# в целом, поэтому любая помощь будет принята с благодарностью! Спасибо, и я надеюсь, что это было достаточно информативно, чтобы указать мне правильное направление.
ОБНОВЛЕНИЕ: При перемещении моделей профиля в тот же проект, что и мой запуск, все работает нормально. Теперь мне просто нужно знать, как я могу добавить ссылку на другой проект, содержащий мои модели профиля. А может я не могу? Было бы неплохо оставить его в моем проекте Models, где остальные мои модели.