Я использую Структурную карту в качестве моего di-контейнера в ядре asp.net, и когда я хочу разрешить некоторые Сервисы в каком-то автоматическом распознавателе, например:
public class UserRolesResolver : IValueResolver<User, CurrentUserVeiwModel, List<string>>
{
private readonly AppUserManager _appUserManager;
public UserRolesResolver(AppUserManager appUserManager)
{
_appUserManager = appUserManager;
}
public List<string> Resolve(User source, CurrentUserVeiwModel destination, List<string> destMember, ResolutionContext context)
{
destination.Roles = AsyncHelpers.RunSync(() => _appUserManager.GetRolesAsync(source)).ToList();
return destination.Roles;
}
}
То, что я получил, это
AutoMapperMappingException: не удается создать экземпляр типа AutomapperProfiles.UserRolesResolver
Я также настроил автоматическое преобразование в классе запуска следующим образом:
services.AddAutoMapper(x =>
{
x.AddProfiles(Assembly.GetAssembly(typeof(OrderProfile)));
x.ConstructServicesUsing(type=> ServiceProvider.GetRequiredService(type));
});