在.Net Core解决方案中为每个项目自动映射不同的配置文件

时间:2019-06-17 07:10:55

标签: c# .net-core automapper asp.net-core-2.1

我有一个具有以下结构的.Net Core 2.1解决方案

基础结构(在此处添加了自动映射器)<< ApplicationCore(大多数逻辑服务在这里)<< MVC

基础结构(在此处添加了自动映射器)<< ApplicationCore(大多数逻辑服务在这里)<

(为清除基础结构和ApplicationCore类库项目仅存在一次而已)

ApplicationCore,MVC和Web API项目均具有特定于它们的类/ DTO /视图模型。因此,在MVC和/或API项目的启动文件中只有一个配置文件是可以的,但是会涉及一些重复。

为了进行测试,我想在没有MVC或API项目的情况下运行ApplicationCore。

是否有一个很好的示例项目,说明每个项目如何具有不同的配置文件?

1 个答案:

答案 0 :(得分:1)

我有同样的问题。这是我的解决方法,

  1. 我在应用程序核心库中继承了“配置文件”创建了“ MapperProfiles”

    public class MapperProfiles : Profile
    {
        public MapperProfiles()
        {
            CreateMap<YourModel, YourViewModel>();
            CreateMap<YourViewModel, YourModel>();
        }
    }
    
  2. 在以下行中添加了startup.cs

    services.AddAutoMapper(typeof(MapperProfiles));
    
  3. 现在将控制器修改为

    private readonly IMapper _mapper;
    
    public YourController(ApplicationDbContext context, IMapper mapper)
    {
        _context = context;
        _mapper = mapper;
    }
    
  4. 现在您可以在控制器中使用映射器了,

    YourModel model = _mapper.Map<YourModel >(YourViewModel);