小编EM1*_*M15的帖子

AutoMapper 与 DI:无法创建类型的实例...使用 ValueResolver 时

我有一个.NET Core 3.1 API 和以下 Nuget 包:

  • 自动映射器(10.1.1)
  • AutoMapper.Extensions.Microsoft.DependencyInjection (8.1.1)

我正在尝试使用ValueResolver将值从实体映射到 dto,但出现异常:

AutoMapperMappingException:无法创建 TestAutomapperResolver.Mapping.CustomResolver 类型的实例

启动.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();
    services.AddAutoMapper(cfg => cfg.AddMaps(typeof(TestProfile).Assembly));
}
Run Code Online (Sandbox Code Playgroud)

测试配置文件.cs

public class TestProfile : Profile
{
    public TestProfile()
    {
        CreateMap<TestEntity, TestDto>()
            .ForMember(src => src.PropertyToBeMappedByResolver, opts => opts.MapFrom<CustomResolver>());
    }
}

public class CustomResolver : IValueResolver<TestEntity, TestDto, string>
{
    public string Resolve(TestEntity source, TestDto destination, string destMember, ResolutionContext context)
    {
        return "String generated with resolver";
    }
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时,mapper.CreateMap<TestDto>(entity);我收到了这个异常。

顺便说一句,使用此解析器作为opts …

c# automapper .net-core

1
推荐指数
1
解决办法
6034
查看次数

标签 统计

.net-core ×1

automapper ×1

c# ×1