You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

依赖注入下AutoMapper报错:缺少类型映射配置或不支持映射

问题解决:AutoMapper依赖注入时提示缺少类型映射配置

执行代码var flattenedIncident = _mapper.Map<FlattenedIncident>(incident);时触发异常:

AutoMapper.AutoMapperMappingException: 'Missing type map configuration or unsupported mapping.'

原无依赖注入的控制台项目运行正常,重构为依赖注入方式后报错。

问题根源

依赖注入中使用services.AddAutoMapper(typeof(Program).Assembly)时,仅扫描了Program所在程序集,但你的IncidentProfile映射配置类不在这个程序集内,导致AutoMapper无法加载到映射规则。而手动创建Mapper时,你明确调用AutoMapperConfig.ConfigureMappings()加载了IncidentProfile,所以能正常运行。

解决方案

方案1:修正AutoMapper的程序集扫描范围

将AddAutoMapper的参数改为包含IncidentProfile所在的程序集,确保AutoMapper能扫描到你的映射配置类:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureServices((context, services) =>
        {
            // 扫描IncidentProfile所在的程序集
            services.AddAutoMapper(typeof(IncidentProfile).Assembly);
            services.AddScoped<IMyService, MyService>();
            services.AddScoped<IConsoleApp, ConsoleApp>();
        });

若需扫描多个程序集,可传入多个类型:

services.AddAutoMapper(typeof(Program).Assembly, typeof(IncidentProfile).Assembly);

方案2:直接复用现有AutoMapperConfig配置

如果想继续使用已有的AutoMapperConfig静态类配置,可替换AddAutoMapper的注册逻辑,手动注册配置好的IMapper:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureServices((context, services) =>
        {
            var mapperConfig = AutoMapperConfig.ConfigureMappings();
            // 提前验证配置是否正确(可选但推荐)
            mapperConfig.AssertConfigurationIsValid();
            // 注册IMapper实例
            services.AddSingleton<IMapper>(mapperConfig.CreateMapper());
            
            services.AddScoped<IMyService, MyService>();
            services.AddScoped<IConsoleApp, ConsoleApp>();
        });

验证建议

无论使用哪种方案,都可以在启动时添加mapperConfig.AssertConfigurationIsValid();提前验证映射配置的正确性,避免运行时才发现问题。

内容的提问来源于stack exchange,提问作者Steve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 06:41:24