public void if_any_exception_appears_on_disposing_events_root_container_should_be_dispose_finally() { ISomeManager manager = null; IRootResolver rootResolver = IocBuilder.New .UseAutofacContainerBuilder() .RegisterServices(r => { r.Register <ISomeManager, SomeManager>(); r.OnDisposing += (sender, args) => { manager = args.Context.Resolver.Resolve <ISomeManager>(); manager.Shutdown(); throw new HandlerException(); }; }) .CreateResolver(); Action act = () => rootResolver.Dispose(); act.ShouldThrow <HandlerException>(); Action containerDisposedAction = () => rootResolver.Container.Resolve <ISomeManager>(); containerDisposedAction.ShouldThrow <ObjectDisposedException>(); Action rootResolverDisposedAction = () => rootResolver.Resolve <ISomeManager>(); rootResolverDisposedAction.ShouldThrow <ObjectDisposedException>(); manager.ShutdownCount.ShouldBe(1); }
public static void Main(string[] args) { EntityFrameworkProfiler.Initialize(); Database.SetInitializer(new NullDatabaseInitializer <AnimalStoveDbContext>()); Database.SetInitializer(new NullDatabaseInitializer <PersonStoveDbContext>()); IRootResolver resolver = IocBuilder.New .UseAutofacContainerBuilder() .UseStove <StoveDemoBootstrapper>(false) .UseStoveEntityFramework() .UseStoveDapper() .UseStoveMapster() .UseStoveEventBus() .UseStoveDbContextEfTransactionStrategy() .UseStoveTypedConnectionStringResolver() .UseStoveNLog() .UseStoveBackgroundJobs() .UseStoveRedisCaching() .UseStoveRabbitMQ(configuration => { configuration.HostAddress = "rabbitmq://localhost/"; configuration.Username = "******"; configuration.Password = "******"; configuration.QueueName = "Default"; return(configuration); }) .UseStoveHangfire(configuration => { configuration.GlobalConfiguration .UseSqlServerStorage("Default") .UseNLogLogProvider(); return(configuration); }) .RegisterServices(r => r.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly())) .CreateResolver(); //var someDomainService = resolver.Resolve<SomeDomainService>(); //someDomainService.DoSomeStuff(); var productDomainService = resolver.Resolve <ProductDomainService>(); productDomainService.DoSomeStuff(); resolver.Dispose(); EntityFrameworkProfiler.Shutdown(); Console.ReadKey(); }
public void TearDown() { _resolver.Dispose(); }
public void Dispose() { Resolver?.Dispose(); }
public void Dispose() { LocalResolver?.Dispose(); }