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);
        }
示例#2
0
        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);
        }