private static IContainer BuildAutofacContainer(bool showSql) { var builder = new ContainerBuilder(); var autoRegistration = new IOC.AutoRegistration(AutofacIocFactory.CreateRegistrator(builder)); autoRegistration .IncludeAssembilesFromTypes(new Type[] { typeof(IOC.IResolver), typeof(AdhocSqlRunner), typeof(Lib.Domain.Persistence.PersistenceUnitOfWorkFactory), typeof(AutofacIocFactory), typeof(Persistence.NHibernate.Conventions.PropertyConvention), typeof(Data.DbUp.UpgradeEngineBuilder), typeof(DbToolRunner) }) .IncludeImplementsITypeNameConvention() .IncludeClosingTypeConvention() .ApplyRegistrations(); builder.RegisterModule(new ConfigModule(DbProviders.SqlServer, showSql)); builder.RegisterModule(new PersistenceModule()); builder .RegisterType(AutofacIocFactory.GetLifetimeScopeType()) .As <IOC.IResolver>() .As <IOC.ILifetimeScope>() .InstancePerLifetimeScope(); var container = builder.Build(); return(container); }
private void ConfigureDependencyResolver() { var settingsFilePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["SettingsFilePath"]); int cacheDurationInMinutes = int.Parse(ConfigurationManager.AppSettings["CacheDurationInMinutes"]); // build autofac container var builder = new ContainerBuilder(); var autoRegistration = new IOC.AutoRegistration(AutofacIocFactory.CreateRegistrator(builder)); autoRegistration .IncludeAssembliesFromCurrentDomain(a => a.FullName.StartsWith("Roham")) .IncludeImplementsITypeNameConvention() .IncludeClosingTypeConvention() .ApplyRegistrations(); builder.RegisterControllers(System.Reflection.Assembly.GetExecutingAssembly()).PropertiesAutowired(); builder.RegisterApiControllers(System.Reflection.Assembly.GetExecutingAssembly()).PropertiesAutowired(); builder.RegisterModule(new IocModules.ConfigsModule(settingsFilePath)); //builder.RegisterModule(new IocModules.CachingModule(cacheDurationInMinutes)); builder.RegisterModule(new IocModules.PersistenceModule()); builder.RegisterModule(new IocModules.IdentityModule()); builder .RegisterType(AutofacIocFactory.GetLifetimeScopeType()) .As <IOC.IResolver>() .As <IOC.ILifetimeScope>() .InstancePerLifetimeScope(); var container = builder.Build(); // set dependency resolver var rootScope = container.Resolve <IOC.ILifetimeScope>(); RohamDependencyResolver.Initialize(rootScope); //webapi GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); // mvc DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); }
protected RohamTestDependencyResolver CreateSubject(Action <AF.ContainerBuilder, IOC.IAutoRegistration> registrationAction) { if (registrationAction == null) { throw new NotImplementedException("registrationAction"); } var builder = new AF.ContainerBuilder(); var autoRegistration = new IOC.AutoRegistration(AutofacIocFactory.CreateRegistrator(builder)); registrationAction(builder, autoRegistration); builder .RegisterType(AutofacIocFactory.GetLifetimeScopeType()) .As <IOC.IResolver>() .As <IOC.ILifetimeScope>() .InstancePerLifetimeScope(); var container = builder.Build(); var rootScope = container.Resolve <IOC.ILifetimeScope>(); return(new RohamTestDependencyResolver(rootScope)); }