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 OnDisposingEvent_Tests() { _rootResolver = IocBuilder.New .UseAutofacContainerBuilder() .RegisterServices(r => { r.Register <ISomeManager, SomeManager>(); r.OnDisposing += (sender, args) => { _manager = args.Context.Resolver.Resolve <ISomeManager>(); _manager.Shutdown(); }; }) .CreateResolver(); }
public ConsumesManager(ISomeManager manager) { Manager = manager; }