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

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

我正在使用 WCF 服务并已使用 AutoFac 设置 DI,并且还希望使用 automapper。我相信我的注入是正确的,因为当我进入希望调用的服务时可以看到我的配置。

在我的 global.asax 文件中我有这个配置;

protected void Application_Start(object sender, EventArgs e)
    {
        var builder = new ContainerBuilder();
        builder.RegisterType<ProposalService>().As<IProposalService>();
        builder.RegisterType<ProposalListService>().As<IProposalListService>();
        builder.RegisterType<ProposalContext>().As<IProposalContext>();
        builder.RegisterType<GetProposalListRequestProfile>().As<Profile>();
        builder.Register(c => new MapperConfiguration(cfg =>
        {
            foreach (var profile in c.Resolve<IEnumerable<Profile>>())
            {
                cfg.AddProfile(profile);
            }

        })).AsSelf().SingleInstance();

        builder.Register(c => c.Resolve<MapperConfiguration>().CreateMapper(c.Resolve)).As<IMapper>().InstancePerLifetimeScope();


        AutofacHostFactory.Container = builder.Build();
    }

在我希望使用的服务中,我有这个

public class ProposalListService : IProposalListService
{
    private IProposalContext _proposalContext;
    private IMapper _mapper;

    public ProposalListService(IProposalContext proposlContext, IMapper mapper)
    {
        _proposalContext = proposlContext;
        _mapper = mapper;
    }

    public getProposalListResponse GetProposalList(getProposalListRequest request)
    {
        var mappedRequest = _mapper.Map<getProposalListRequest, Data.Models.getProposalListRequest>(request);
        var result = _proposalContext.GetProposalList(mappedRequest);
        var mappedResponse = _mapper.Map<Data.Models.getProposalListResponse, getProposalListResponse>(result);
        return mappedResponse;
    }
}

我有这个映射配置文件

public class GetProposalListRequestProfile : Profile
{
    public GetProposalListRequestProfile()
    {
        IMappingExpression<Data.Models.getProposalListRequest, getProposalListRequest>
            mappingExpression =
                CreateMap<Data.Models.getProposalListRequest, getProposalListRequest>()
                    .ForMember(dest => dest.getProposalList, opt => opt.MapFrom(src => src.getProposalList));

    }
}

结构是

WCF 服务将转到 class 库,然后将调用 EF 获取数据,但是当我到达第 var mappedRequest = _mapper.Map<getProposalListRequest, Data.Models.getProposalListRequest>(request); 行时出现错误

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

对于解决此问题的任何帮助,我将不胜感激。

谢谢

如果您检查 CreateMap 方法,您将看到下一个:

IMappingExpression<TSource, TDestination> CreateMap<TSource, TDestination>();

因此您的 CreateMap<Data.Models.getProposalListRequest, getProposalListRequest>() 将创建从 Data.Models.getProposalListRequestgetProposalListRequest 的映射,以便处理您的用例,您将添加还原的注册或尝试添加 .ReverseMap() 调用在 CreateMap.

之后