正在构建ASP.Net Core 2.0 Web应用程序,无法确定在哪里验证AutoMapper配置。
在我的ConfigureServices()
方法中,
services.AddAutoMapper();
我正在自动映射器配置文件中注册映射
public class MyAutomapperProfile : Profile
{
public MyAutomapperProfile()
{
CreateMap<FooDto, FooModel>();
CreateMap<BarDto, BarModel>();
}
}
但不清楚在哪里打电话
Mapper.Configuration.AssertConfigurationIsValid();
答案 0 :(得分:6)
在IMapper
界面中进行挖掘(并感谢@LucianBargaoanu提供的documentation link)之后,我发现了我真正需要的东西。
在ConfigureServices()
中:
// Adds AutoMapper to DI configuration and automagically scans the
// current assembly for any classes that inherit Profile
// and registers their configuration in AutoMapper
services.AddAutoMapper();
秘密之处在于将IMapper mapper
作为参数添加到Configure()
-参数列表是依赖注入的,因此您可以引用在ConfigureServices()
中注册的任何服务
public void Configure(IApplicationBuilder app, ... , IMapper mapper)
{
...
mapper.ConfigurationProvider.AssertConfigurationIsValid();
}
完全按预期工作。
答案 1 :(得分:2)
recommended approach(请参阅JBogard的回应)是将这个测试转移到单元测试中:
SendKeys