public void UsesDefaultLifetimeManagerOfChangesTheDefaultLifetimeManager()
        {
            var aLifetimeManager = new LifetimeManagers.ContainerLifetime();

            iocContainer.UsesDefaultLifetimeManagerOf(aLifetimeManager);

            iocContainer.Register <IFoo>(c => new Foo1());
            var foo1 = iocContainer.Resolve <IFoo>();
            var foo2 = iocContainer.Resolve <IFoo>();

            Verify.That(iocContainer.DefaultLifetimeManager).IsTheSameObjectAs(aLifetimeManager);
            Verify.That(foo1).IsTheSameObjectAs(foo2);
        }
예제 #2
0
        void SettingTheLifetimeManagerForARegistration()
        {
            // create the container.  Only done once in Application_Start
            IocContainer iocContainer = new IocContainer();

            // create a Container lifetime manager to use for 'singelton' services
            // only one instance will be created and reused for each resolve request.
            ILifetimeManager containerLifetimeManager = new LifetimeManagers.ContainerLifetime();

            iocContainer.Register <IMembershipService>(ioc => new AccountMembershipService(Membership.Provider))
            .WithLifetimeManager(containerLifetimeManager);

            iocContainer.Register <IFormsAuthenticationService>(ioc => new FormsAuthenticationService())
            .WithLifetimeManager(containerLifetimeManager);
        }
예제 #3
0
        public void UsesDefaultLifetimeManagerOfChangesTheDefaultLifetimeManager()
        {
            using (var iocContainer = new IocContainer())
            {
                var aLifetimeManager = new LifetimeManagers.ContainerLifetime();
                iocContainer.UsesDefaultLifetimeManagerOf(aLifetimeManager);

                iocContainer.Register<IFoo>(c => new Foo1());
                var foo1 = iocContainer.Resolve<IFoo>();
                var foo2 = iocContainer.Resolve<IFoo>();

                Verify.That(iocContainer.DefaultLifetimeManager).IsTheSameObjectAs(aLifetimeManager);
                Verify.That(foo1).IsTheSameObjectAs(foo2);
            }
        }