コード例 #1
0
        private static void RegisterAutofac(HttpConfiguration config, AppModuleLoader moduleLoader)
        {
            var builder = new ContainerBuilder();

            builder.RegisterModule <CommonInjectionModule>();
            builder.RegisterModule <RepositoryInjectionModule>();
            builder.RegisterModule <CqrsInjectionModule>(); builder.RegisterModule(new SuffixAssemblyInjectionModule <BusinessLayer>("Logic"));
            builder.RegisterWebApiFilterProvider(GlobalConfiguration.Configuration);
            builder.Register(c => new AuthorizationFilterAttribute(c.Resolve <IAuthorizationLogic>()))
            .AsWebApiAuthorizationFilterFor <InvoicesController>()
            .InstancePerRequest();

            builder.RegisterType <DatabaseContext>().AsSelf().InstancePerRequest();
            builder.Register(cfg => ProfileAppModule.CreateMapper()).As <IMapper>().SingleInstance();
            builder.RegisterApiControllers(typeof(ServiceLayer).Assembly).PropertiesAutowired();
            builder.RegisterWebApiFilterProvider(config);

            builder.Register(cfg =>
            {
                var header = HttpContext.Current.Request.Headers["API-key"];
                if (null != header)
                {
                    return(new UserData(header));
                }
                return(new UserData(null));
            }).As <IUserData>().InstancePerRequest();

            var container = builder.Build();

            AutofacConfig.Initialize(container);

            var resolver = new AutofacWebApiDependencyResolver(container);

            GlobalConfiguration.Configuration.DependencyResolver = resolver;
        }
コード例 #2
0
        private static AppModuleLoader RegisterAppModules()
        {
            var moduleLoader = new AppModuleLoader();

            moduleLoader.Register <ProfileAppModule>();
            ProfileAppModule.AutomapperModule = moduleLoader.GetModule <ProfileAppModule>();
            return(moduleLoader);
        }