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); }
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(); } }