Example #1
0
        private void ConfigureAutoMapper(ContainerBuilder builder)
        {
            // static
            Mapper.Reset();
            Mapper.Initialize(ConfigureAutoMapper);
            Mapper.Configuration.CompileMappings();

            // instance
            builder.Register(c => (MapperConfiguration)Mapper.Configuration).AsSelf().SingleInstance();
            builder.Register(c => c.Resolve <MapperConfiguration>().CreateMapper(c.Resolve <IComponentContext>().Resolve)).As <IMapper>().InstancePerLifetimeScope();

            // linq
            var projectionConfiguration = new ProjectionMapperConfiguration(cfg =>
            {
                cfg.AllowNullDestinationValues = false;
                ConfigureAutoMapper(cfg);
            });

            projectionConfiguration.CompileMappings();
            builder.Register(c => projectionConfiguration).As <IProjectionConfigurationProvider>().SingleInstance();
        }
Example #2
0
        public static void ConfigureAutoMapper(
            this IServiceCollection services,
            Action <IMapperConfigurationExpression> configure)
        {
            Mapper.Reset();
            Mapper.Initialize(configure);
            Mapper.Configuration.CompileMappings();

            services.AddSingleton(opt => (MapperConfiguration)Mapper.Configuration);
            services.AddScoped(opt => opt
                               .GetService <MapperConfiguration>()
                               .CreateMapper(opt.GetRequiredService <IServiceScope>().ServiceProvider.GetService));

            var projectionConfiguration = new ProjectionMapperConfiguration(cfg =>
            {
                cfg.AllowNullDestinationValues = false;
                configure(cfg);
            });

            projectionConfiguration.CompileMappings();
            services.AddSingleton <IProjectionConfigurationProvider>(opt => projectionConfiguration);
        }