示例#1
0
        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);
        }
示例#2
0
 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();
 }
示例#3
0
 public ConsumesManager(ISomeManager manager)
 {
     Manager = manager;
 }