Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
        }