/// <summary> /// Initialize all required interface /// </summary> /// <param name="container"></param> private static void RegisterAllDependencies(Container container) { container.Register(() => new EzCMSEntities(), Lifestyle.Scoped); container.Register <DbContext>(() => new EzCMSEntities(), Lifestyle.Scoped); container.Register(typeof(IRepository <>), typeof(Repository <>), Lifestyle.Scoped); container.Register(typeof(IHierarchyRepository <>), typeof(HierarchyRepository <>), Lifestyle.Scoped); IoCRegister.RegisterDepencies(container); // Logger using site settings container.Register(typeof(ILogger), () => new Logger(MethodBase.GetCurrentMethod().DeclaringType), Lifestyle.Scoped); #region Register controllers //container.RegisterMvcControllers(EzCMSUtilities.GetEzCMSAssemblies().ToArray()); var registeredControllerTypes = SimpleInjectorMvcExtensions.GetControllerTypesToRegister( container, EzCMSUtilities.GetEzCMSAssemblies().ToArray()); // Remove setup controller out of Register process registeredControllerTypes = registeredControllerTypes.Where(type => type.Name != "SetupController").ToArray(); foreach (var controllerType in registeredControllerTypes) { RegisterController(container, controllerType); } #endregion }
public static void Initialize() { var container = new Container(); container.Options.DefaultScopedLifestyle = new WebRequestLifestyle(); // Chamada dos módulos do Simple Injector InitializeContainer(container); // Necessário para registrar o ambiente do Owin que é dependência do Identity // Feito fora da camada de IoC para não levar o System.Web para fora container.Register(() => { if (HttpContext.Current != null && HttpContext.Current.Items["owin.Environment"] == null && container.IsVerifying) { return(new OwinContext().Authentication); } return(HttpContext.Current.GetOwinContext().Authentication); }, Lifestyle.Scoped); //container.RegisterMvcControllers(Assembly.GetExecutingAssembly()); var registeredControllerTypes = SimpleInjectorMvcExtensions.GetControllerTypesToRegister( container, Assembly.GetExecutingAssembly()); foreach (var controllerType in registeredControllerTypes) { container.Register(controllerType, controllerType, Lifestyle.Scoped); } container.Verify(); DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container)); }
public void ConfigureDependencyInjection(IAppBuilder app) { // Create a new Simple Injector container var container = new Container(); // Configure the container (register dependencies) InitializeContainer(container); // Register all MVC controllers // Fail to register the AccountController. Let's remove DI from Identity for now. //container.RegisterMvcControllers(Assembly.GetExecutingAssembly()); //List all Controller and register them, one by one. //var registeredControllerTypes = // SimpleInjectorMvcExtensions.GetControllerTypesToRegister( // container, Assembly.GetExecutingAssembly()); //foreach (var controllerType in registeredControllerTypes) //{ // container.Register(controllerType, controllerType, Lifestyle.Transient); //} //List all controller, except... the exeception var registeredControllerTypes = SimpleInjectorMvcExtensions.GetControllerTypesToRegister( container, Assembly.GetExecutingAssembly()) .Where(type => type.Name != "AccountController"). Where(type => type.Name != "ManageController"); foreach (var controllerType in registeredControllerTypes) { container.Register(controllerType, controllerType, Lifestyle.Transient); } //WEB API. container.RegisterWebApiControllers(GlobalConfiguration.Configuration); // Optionally verify the container's configuration. container.Verify(); // Register the container as MVC DependencyResolver. DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container)); GlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container); }
/// <summary> /// Register setup service for setup process /// </summary> public static void RegisterSetupIOC() { var container = new Container(); container.Options.DefaultScopedLifestyle = new WebRequestLifestyle(); #region Register required service for setup process // Register site setup service container.Register(() => new EzCMSEntities(), Lifestyle.Scoped); container.Register <DbContext>(() => new EzCMSEntities(), Lifestyle.Scoped); container.Register(typeof(ILogger), () => new Logger(MethodBase.GetCurrentMethod().DeclaringType)); container.Register(typeof(IRepository <>), typeof(Repository <>)); container.Register(typeof(IHierarchyRepository <>), typeof(HierarchyRepository <>)); container.Register(typeof(IPageRepository), typeof(PageRepository)); container.Register(typeof(IUserRepository), typeof(UserRepository)); container.Register(typeof(IClientNavigationRepository), typeof(ClientNavigationRepository)); container.Register(typeof(ISiteSetupService), typeof(SiteSetupService)); container.Register(typeof(IStarterKitService), typeof(StarterKitService)); container.Register(typeof(IBackgroundTaskManager), typeof(BackgroundTaskManager)); #endregion #region Register SetupController // Only get SetupController var registeredControllerTypes = SimpleInjectorMvcExtensions.GetControllerTypesToRegister( container, EzCMSUtilities.GetEzCMSAssemblies().ToArray()).Where(type => type.Name == "SetupController"); foreach (var controllerType in registeredControllerTypes) { RegisterController(container, controllerType); } #endregion HostContainer.SetContainer(container); container.Verify(); DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container)); GlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container); }