protected void Application_Start() { InitializeLogging(); SetAdoNetAppenderConnectionStrings("AtomicCms"); StructureMapRegistration.RegisterAll(); AreaRegistration.RegisterAllAreas(); RegisterRoutes(RouteTable.Routes); ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new CustomRazorViewEngine()); ViewEngines.Engines.Add(new CustomWebFormViewEngine()); ControllerBuilder.Current.SetControllerFactory(new AtomicCmsControllerFactory()); }
private static void SelectIoC() { Console.WriteLine("Select IoC/DI container:"); Console.WriteLine("Press C for Castle Windsor"); Console.WriteLine("Press S for StructureMap"); ConsoleKeyInfo cki = Console.ReadKey(false); switch (cki.Key) { case ConsoleKey.C: CastleRegistration.Register(); break; case ConsoleKey.S: StructureMapRegistration.Register(); break; default: throw new InvalidOperationException("Please press either C or S keys."); } }
/// <summary> /// The build. /// </summary> /// <param name="services"> /// The services. /// </param> /// <param name="configuration"> /// The configuration. /// </param> /// <param name="hostingEnvironment"> /// The hosting environment. /// </param> /// <returns> /// The <see cref="IServiceProvider"/>. /// </returns> public static IServiceProvider Build( this IServiceCollection services, IConfiguration configuration, IHostingEnvironment hostingEnvironment, string scanFolder, string searchAssemblies ) { var container = StructureMapRegistration.CreateAndConfigure(configuration, services, scanFolder, searchAssemblies); services.AddSingleton(configuration); // Setup identity //var identityManager = container.TryGetInstance<IIdentityManager>(); //identityManager?.AddCustomizedIdentity(services, configuration, null); container.Configure(config => config.Populate(services)); //IUnitOfWork unitOfWork = container.GetInstance<IDatabaseManager>().BeginUnitOfWork( // container.GetInstance<IDataConfiguration>()); //For<IDataConfiguration>().Use<DataConfiguration> // .Ctor<string>("connectionString").Is(dataConfiguration); //container.Configure( // config => // { // config.For<IUnitOfWork>().LifecycleIs(Lifecycles.Transient).Use(() => unitOfWork); // }); IDatabaseManager databaseManager = container.GetInstance <IDatabaseManager>(); IDataConfiguration dataConfiguration = container.GetInstance <IDataConfiguration>(); databaseManager.RegisterUnitOfWork(dataConfiguration, container); return(container.GetInstance <IServiceProvider>()); }