using System; using System.Collections.Generic; using Autofac; using AutoMapper; namespace CQRS_Simple.API.Modules { public class AutoMapperModule : Autofac.Module { protected override void Load(ContainerBuilder builder) { base.Load(builder); var assemblies = AppDomain.CurrentDomain.GetAssemblies(); builder.RegisterAssemblyTypes(assemblies) .Where(t => typeof(Profile).IsAssignableFrom(t) && !t.IsAbstract && t.IsPublic) .As(); builder.Register(c => new MapperConfiguration(cfg => { //cfg.ConstructServicesUsing(ServiceConstructor); foreach (var profile in c.Resolve>()) { cfg.AddProfile(profile); } })) .AsSelf() .AutoActivate() .SingleInstance(); builder.Register(c => { // these are the changed lines var scope = c.Resolve(); return new Mapper(c.Resolve(), scope.Resolve); }) .As() .SingleInstance(); } } }