我使用ASP.net Core和AutoMapper。为了让DI运行,我使用AutoMapper.Extensions.Microsoft.DependencyInjection Nuget-Package并让AutoMapper通过
注册配置文件 private static void InitializeAutoMapper(IServiceCollection services)
{
services.AddAutoMapper();
}
这样可以正常工作,但是对于某些配置文件,我还想为它们注入一些依赖项,例如:
public class IndividualDtoProfile : Profile
{
private readonly IIndividualFactory _individualFactory;
private readonly IMapper _mapper;
public IndividualDtoProfile(IIndividualFactory individualFactory, IMapper mapper)
{
_individualFactory = individualFactory;
_mapper = mapper;
}
public IndividualDtoProfile()
{
CreateMap<Individual, IndividualDto>();
CreateMap<IndividualDto, Individual>()
.ConstructUsing(
dto =>
{
var gender = _mapper.Map<IndividualGender>(dto.Gender);
return _individualFactory.CreateIndividual(dto.FirstName, dto.LastName, gender, dto.BirthDate);
});
}
}
我找到的唯一相关讨论是:https://groups.google.com/forum/#!topic/automapper-users/5XK7pqGu_Tg
似乎建议不要使用现有可能性的优点,而是手动映射配置文件。我唯一看到的另一种可能性就是提供一个静态的ServiceProvider-Singleton,它看起来也不太吸引人。
是否已经有可能将ASP.Net Core与AutoMapper一起使用并让依赖项注入Profiles?
编辑:由于评论,我可能也有一些根本错误:我正在学习领域驱动设计,我有一个应用层。我想将从Web服务中使用的DTO映射回域实体,我想,在那里使用工厂也是有意义的,否则我会绕过逻辑中的逻辑。工厂。