我使用结构映射作为 asp.net core 中的 di 容器,当我想解析某些自动映射器解析器中的某些服务时,如下所示:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的是
AutoMapperMappingException:无法创建 AutomapperProfiles.UserRolesResolver 类型的实例
我还在 Startup 类中配置了 automapper,如下所示:
services.AddAutoMapper(x =>
{
x.AddProfiles(Assembly.GetAssembly(typeof(OrderProfile)));
x.ConstructServicesUsing(type=> ServiceProvider.GetRequiredService(type));
});
Run Code Online (Sandbox Code Playgroud)