.net - Automapper 10 和 Simple Injector v5 设置“SimpleInjector.ActivationException”
问题描述
我在下面的 AutoMapper 设置文章中遵循此设置,但我不断收到此错误。文档不正确吗?
private static IMapper GetMapper(Container container)
{
var mp = container.GetInstance<MapperProvider>();
return mp.GetMapper();
}
public static void Register(Container container)
{
container.RegisterSingleton(() => GetMapper(container));
...
MapperProvider.cs
public class MapperProvider
{
private readonly Container _container;
public MapperProvider(Container container)
{
_container = container;
}
public IMapper GetMapper()
{
var config = new MapperConfigurationExpression();
config.ConstructServicesUsing(_container.GetInstance);
config.AllowNullDestinationValues = true;
config.AllowNullCollections = true;
config.CreateMap<TeamModel, PoolTeamExtendedModel>();
var mc = new MapperConfiguration(config);
mc.AssertConfigurationIsValid();
IMapper m = new Mapper(mc, t => _container.GetInstance(t));
return m;
}
错误
SimpleInjector.ActivationException:'找不到类型 MapperProvider 的注册。确保 MapperProvider 已注册,例如通过调用 'Container.Register<MapperProvider>();' 在注册阶段。无法进行隐式注册,因为 Container.Options.ResolveUnregisteredConcreteTypes 设置为“false”,现在这是 v5 中的默认设置。这不允许容器构造这个未注册的具体类型。有关为什么默认情况下现在不允许解析未注册的具体类型的更多信息,以及您可以应用哪些可能的修复,请参阅https://simpleinjector.org/ructd。'
解决方案
我首先添加了这种具体类型
container.RegisterSingleton<MapperProvider>();
推荐阅读
- python - 遍历 csv 文件中的行并在 PYTHON 中使用 SQLITE3 插入表(列)
- python - [:] 在“for nm in namesList[:]:”的上下文中是什么意思
- xml - 在 Snowflake 中使用递归层次结构解析 XML
- turing-machines - 非 re 语言的集合在并集或交集下是封闭的吗?
- python - 如何将多个 pandas 数据帧(例如 2D 矩阵)转换为张量?
- json - 使用从 Invoke-RestMethod 返回的值
- python - 为什么这个“类型错误:列表索引必须是整数或切片,而不是元组”在下面的代码中用于查找网格的最小成本路径?
- mysql - 如何获得两个独立数据库中行数之间的百分比?
- java - 单击 GridLayout 中 CardView 的特定项目
- angular - Angular 材质表服务器端过滤