Example #1
0
        static void Main(string[] args)
        {
            var env = new ApplicationEnvironment();
            var bootupConfigurationProvider = new BootupConfigurationProvider(env);

            Autofac.ContainerBuilder cb = new Autofac.ContainerBuilder();
            cb.RegisterInstance <IEnvironment>(env);
            cb.RegisterInstance(bootupConfigurationProvider).As <IBootupConfigurationProvider>();

            cb.RegisterModule <Teleware.Foundation.Core.Module>();
            cb.RegisterModule <Teleware.Foundation.Configuration.Module>();
            cb.RegisterModule <Teleware.Foundation.Diagnostics.Loggers.NLog.Module>();
            cb.RegisterModule <Teleware.Foundation.Data.Memory.Module>();
            //cb.RegisterModule<Teleware.Foundation.Data.EntityFramework.Module>();
            //cb.RegisterModule<Teleware.Foundation.Data.EntityFramework.Oracle.Module>();

            var container = cb.Build();

            using (var lt = container.BeginLifetimeScope())
            {
                while (true)
                {
                    var db = lt.Resolve <IOptions <DatabaseOptions> >();

                    Console.WriteLine(db.Value.ConnectionStrings.First().ToString());
                    Thread.Sleep(1000);
                }
            }
        }
        protected void Application_Start()
        {
            var env = new Teleware.Foundation.Hosting.Application.ApplicationEnvironment();
            var bootupConfigurationProvider = new BootupConfigurationProvider(env);
            var configModule = new Autofac.Configuration.ConfigurationModule(bootupConfigurationProvider.GetAutofacConfiguration());

            GlobalConfiguration.Configure(WebApiConfig.Register);

            var builder = new ContainerBuilder();

            builder.RegisterInstance(env).As <IEnvironment>();
            builder.RegisterInstance(bootupConfigurationProvider).As <IBootupConfigurationProvider>();
            builder.RegisterModule(configModule);

            var config = GlobalConfiguration.Configuration;

            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            builder.RegisterWebApiFilterProvider(config);

            builder.RegisterType <ApiExceptionFilter>().AsWebApiExceptionFilterFor <ApiController>().InstancePerRequest();
            builder.RegisterType <UnitOfWorkCommitFilter>().AsWebApiActionFilterFor <ApiController>().InstancePerRequest();

            var container = builder.Build();

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
        }
Example #3
0
        private static void Main(string[] args)
        {
            var env = new ApplicationEnvironment();
            var bootupConfigurationProvider = new BootupConfigurationProvider(env);

            Autofac.ContainerBuilder cb = new Autofac.ContainerBuilder();
            cb.RegisterInstance <IEnvironment>(env);
            cb.RegisterInstance(bootupConfigurationProvider).As <IBootupConfigurationProvider>();

            cb.RegisterModule <Teleware.Foundation.Core.Module>();
            cb.RegisterModule <Teleware.Foundation.Configuration.Module>();
            cb.RegisterModule <Teleware.Foundation.Diagnostics.Loggers.NLog.Module>();
            cb.RegisterModule <Teleware.Foundation.Data.Memory.Module>();
            //cb.RegisterModule<Teleware.Foundation.Data.EntityFramework.Module>();
            //cb.RegisterModule<Teleware.Foundation.Data.EntityFramework.Oracle.Module>();

            var container = cb.Build();

            using (var lt = container.BeginLifetimeScope())
            {
                var logger = lt.Resolve <ILogger <Test> >();
                logger.Warn(1, "warn");
                //logger.Debug(2, new ArgumentException("arg"), "debug");
                //var loggerFactory = lt.Resolve<ILoggerFactory>();
                //var logger2 = loggerFactory.CreateLogger("manual");
                //logger2.Fatal(0, "death");
                //var uow = lt.Resolve<IUnitOfWork>();
                //var repo = lt.Resolve<ICRUDRepository<Test>>();
                //var test = new Test();
                //repo.Add(test);
                //var item0 = repo.Query().FirstOrDefault();
                //test.Foo = "a";
                //repo.Update(test);
                //var item = repo.Query().FirstOrDefault();
                //repo.Remove(test);
                //uow.Commit();
            }
        }