在AutoMapper配置文件中使用依赖项注入服务

时间:2019-10-23 19:13:10

标签: dependency-injection .net-core automapper

我有一个AfterMap方法,该方法需要使用上下文来更改某些元素的EntityState以及使用注入的映射器实例在现有数据之上映射相关数据,而不是添加。

我的问题是,我无法在配置文件中获取依赖项注入。如果我定义这样的配置文件:

public MyProfile(IMapper mapper, MyContext context)

尝试添加没有参数的构造函数时出错。我在启动时的配置是这样的:

var mapperConfig = new MapperConfiguration(cfg => {
                cfg.AddMaps("MYAPP");
            });
            services.AddSingleton<IMapper>(x => mapperConfig.CreateMapper());

如何将依赖项注入这些配置文件以在AfterMap方法中使用。

个人资料示例供参考:

public class MyProfile : Profile {
IMapper _mapper;
MyContext _context;
public MyProfile(IMapper mapper, MyContext context) {
_mapper = mapper;
_context = context;

CreateMap<Thing1, Thing2>()
        .ForMember(d => d.IncidentCauseSubTypes, o => o.Ignore())
        .AfterMap((src, dest) => MergeRelatedLists(Things1, Thing2, _mapper, _context));
}

}

0 个答案:

没有答案