在ASP.Net Core应用程序中的哪里验证AutoMapper配置?

时间:2018-07-26 20:34:43

标签: .net-core automapper

正在构建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();

2 个答案:

答案 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