问题描述
我在下面的 AutoMapper 设置文章中遵循此设置,但我不断收到此错误。 the documentation 不正确吗?
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
解决方法
我首先添加了这个具体类型
public static int lowestEvenNumber(int[][] arr) {
return Arrays.stream(arr)
// Stream<int[]> to IntStream
.flatMapToInt(Arrays::stream)
// even numbers
.filter(i -> i % 2 == 0)
// minimum of the array
.min().orElse(-1);
}