我有一个具有以下结构的.Net Core 2.1解决方案
基础结构(在此处添加了自动映射器)<< ApplicationCore(大多数逻辑服务在这里)<< MVC
基础结构(在此处添加了自动映射器)<< ApplicationCore(大多数逻辑服务在这里)<
(为清除基础结构和ApplicationCore类库项目仅存在一次而已)
ApplicationCore,MVC和Web API项目均具有特定于它们的类/ DTO /视图模型。因此,在MVC和/或API项目的启动文件中只有一个配置文件是可以的,但是会涉及一些重复。
为了进行测试,我想在没有MVC或API项目的情况下运行ApplicationCore。
是否有一个很好的示例项目,说明每个项目如何具有不同的配置文件?
答案 0 :(得分:1)
我有同样的问题。这是我的解决方法,
我在应用程序核心库中继承了“配置文件”创建了“ MapperProfiles”
public class MapperProfiles : Profile
{
public MapperProfiles()
{
CreateMap<YourModel, YourViewModel>();
CreateMap<YourViewModel, YourModel>();
}
}
在以下行中添加了startup.cs
services.AddAutoMapper(typeof(MapperProfiles));
现在将控制器修改为
private readonly IMapper _mapper;
public YourController(ApplicationDbContext context, IMapper mapper)
{
_context = context;
_mapper = mapper;
}
现在您可以在控制器中使用映射器了,
YourModel model = _mapper.Map<YourModel >(YourViewModel);