【发布时间】:2016-10-20 05:06:53
【问题描述】:
我正在尝试使用https://lostechies.com/jimmybogard/2016/07/20/integrating-automapper-with-asp-net-core-di 中描述的技术在 ASP.NET Core MVC 应用程序中实现 AutoMapper。
public IServiceProvider ConfigureServices(IServiceCollection services)
{
…
services.AddMvc();
services.AddAutoMapper();
…
// Autofac configuration
return ConfigureAutofacContainer(services);
}
这里是my AutoMapper.Profile implementation
public class AutoMapperProfile_NetCore_DtoFromDao : Profile
{
#region ctor
public AutoMapperProfile_NetCore_DtoFromDao()
{
CreateMaps();
}
#endregion
#region Methods
protected void CreateMaps()
{
if (Mapper.Configuration.FindTypeMapFor(typeof(AddressType),
typeof(AddressTypeDto)) == null)
CreateMap<AddressType, AddressTypeDto>();
Mapper.Configuration.AssertConfigurationIsValid();
}
}
AutoMapperProfile_NetCore_DtoFromDao.CreateMaps() 正在被 ServiceCollectionExtensions.AddAutoMapperClasses() 调用:
public static class ServiceCollectionExtensions
{
…
private static void AddAutoMapperClasses(IServiceCollection services,
Action<IMapperConfigurationExpression> additionalInitAction,
IEnumerable<Assembly> assembliesToScan)
{
…
Mapper.Initialize(cfg =>
{
additionalInitAction(cfg);
foreach (var profile in profiles)
{
cfg.AddProfile(profile);
}
});
…
}
}
我收到以下异常:
“System.InvalidOperationException”类型的异常发生在 AutoMapper.dll 但未在用户代码中处理
Q - 这是由于在 Mapper.Initialization() 期间调用 Mapper.Configuration.FindTypeMapFor() 的配置文件造成的吗?
问 - 是否可以在初始化期间添加一个现有映射配置之前对其进行测试?
System.InvalidOperationException 未被用户代码处理
HResult=-2146233079 消息=映射器未初始化。调用初始化 与适当的配置。如果您尝试使用映射器 通过容器或其他方式的实例,请确保您没有 对静态 Mapper.Map 方法的任何调用,如果您正在使用 ProjectTo 或 UseAsDataSource 扩展方法,确保传入 适当的 IConfigurationProvider 实例。源=AutoMapper
堆栈跟踪: 在 AutoMapper.Mapper.get_Configuration() 在 Dna.NetCore.Core.BLL.Mappers.AutoMapperProfile_NetCore_DtoFromDao.CreateMaps() 在 C:\Src\AutoMapper.Extensions.Microsoft.DependencyInjection\src\Dna.NetCore.Core.BLL\Mappers\AutoMapperProfile_NetCore_DtoFromDao.cs:line 22 在 Dna.NetCore.Core.BLL.Mappers.AutoMapperProfile_NetCore_DtoFromDao..ctor() 在 C:\Src\AutoMapper.Extensions.Microsoft.DependencyInjection\src\Dna.NetCore.Core.BLL\Mappers\AutoMapperProfile_NetCore_DtoFromDao.cs:line 13 内部异常:
【问题讨论】: