public static void RegisterAssemblies(IKernel kernel) { //there are better ways to getting the namespace of the mappers, but this is the most straightforward in the POC const string mapperNamespace = "IMapperPOC.Service.Mappers"; var scanner = new AssemblyScanner(); scanner.WhereTypeIsNotInNamespace(mapperNamespace); scanner.FromCallingAssembly(); scanner.BindWith<DefaultBindingGenerator>(); kernel.Scan(scanner); var mapScanner = new AssemblyScanner(); mapScanner.FromCallingAssembly(); mapScanner.WhereTypeIsInNamespace(mapperNamespace); mapScanner.BindWith<DefaultBindingGenerator>(); //only create the mappers once since AutoMapper registration has a lot of overhead. mapScanner.InSingletonScope(); kernel.Scan(mapScanner); }
public static void RegisterAssemblies(IKernel kernel) { if (kernel == null) throw new ArgumentException("can not be null", "kernel"); kernel.Bind<ITimeTrackerSession>().To<TimeTrackerSession>().InRequestScope(); kernel.Bind<ITimeTrackerReadOnlySession>().To<TimeTrackerReadOnlySession>().InRequestScope(); var scanner = new AssemblyScanner(); scanner.WhereTypeIsNotInNamespace("TimeTracker.Service.Storage.Context"); scanner.WhereTypeIsNotInNamespace("TimeTracker.Service.Mappers"); scanner.FromCallingAssembly(); scanner.BindWith<DefaultBindingGenerator>(); kernel.Scan(scanner); //set mappers to singleton var mapScanner = new AssemblyScanner(); mapScanner.FromCallingAssembly(); mapScanner.WhereTypeIsInNamespace("TimeTracker.Service.Mappers"); mapScanner.BindWith<DefaultBindingGenerator>(); mapScanner.InSingletonScope(); kernel.Scan(mapScanner); }