Example #1
0
 public static ICollection<IHandler> SimulateRegistration(this IRegistration reg, IKernel kernel)
 {
     using (var childKernel = new DefaultKernel()) {
         kernel.AddChildKernel(childKernel);
         childKernel.Register(reg);
         return childKernel.GetAssignableHandlers(typeof(object));
     }
 }
Example #2
0
        public void DependenciesSatisfiedAmongContainers()
        {
            IKernel subkernel = new DefaultKernel();

            kernel.AddComponent("mailsender", typeof(DefaultMailSenderService));
            kernel.AddComponent("templateengine", typeof(DefaultTemplateEngine));

            kernel.AddChildKernel(subkernel);

            subkernel.AddComponent("spamservice", typeof(DefaultSpamService));

            DefaultSpamService spamservice = (DefaultSpamService)subkernel["spamservice"];

            Assert.IsNotNull(spamservice);
            Assert.IsNotNull(spamservice.MailSender);
            Assert.IsNotNull(spamservice.TemplateEngine);
        }
        public override void Init(IComponentActivator componentActivator, IKernel kernel, ComponentModel model)
        {
            Contract.Ensures(_Lifestyle1 != null);
            Contract.Ensures(Initialized);

            // check ILoggerFactory is registered
            if (kernel.HasComponent(typeof(ILoggerFactory)))
            {
                // get logger factory instance
                var loggerFactory = kernel.Resolve <ILoggerFactory>();
                // create logger
                _Logger = loggerFactory.Create(typeof(WrapperResolveLifestyleManager <T>));
            }
            else
            {
                _Logger = NullLogger.Instance;
            }

            if (_Logger.IsDebugEnabled)
            {
                _Logger.DebugFormat("initializing (for component: {0})", string.Join(",", model.Services));
            }

            _LifestyleKernel.Register(Component.For <T>().LifeStyle.Transient.Named("T.lifestyle"));
            kernel.AddChildKernel(_LifestyleKernel);

            try
            {
                _Lifestyle1 = _LifestyleKernel.Resolve <T>();
            }
            finally
            {
                kernel.RemoveChildKernel(_LifestyleKernel);
            }

            _Lifestyle1.Init(componentActivator, kernel, model);

            base.Init(componentActivator, kernel, model);

            Contract.Assume(_Lifestyle1 != null,
                            "lifestyle1 can't be null because the Resolve<T> call will throw an exception if a matching service wasn't found");

            _Logger.Debug("initialized");

            _Initialized = true;
        }
Example #4
0
        /// <summary>
        ///   Registers a subcontainer. The components exposed
        ///   by this container will be accessible from subcontainers.
        /// </summary>
        /// <param name = "childContainer"></param>
        public virtual void AddChildContainer(IWindsorContainer childContainer)
        {
            if (childContainer == null)
            {
                throw new ArgumentNullException("childContainer");
            }

            if (!childContainers.ContainsKey(childContainer.Name))
            {
                lock (childContainersLocker)
                {
                    if (!childContainers.ContainsKey(childContainer.Name))
                    {
                        kernel.AddChildKernel(childContainer.Kernel);
                        childContainers.Add(childContainer.Name, childContainer);
                        childContainer.Parent = this;
                    }
                }
            }
        }
 /// <summary>
 /// Registers a subcontainer. The components exposed
 /// by this container will be accessible from subcontainers.
 /// </summary>
 /// <param name="childContainer"></param>
 public virtual void AddChildContainer(IWindsorContainer childContainer)
 {
     childContainer.Parent = this;
     _kernel.AddChildKernel(childContainer.Kernel);
 }
        public void AddChildKernelToTwoParentsThrowsException()
        {
            IKernel kernel2 = new DefaultKernel();

            IKernel subkernel = new DefaultKernel();

            kernel.AddChildKernel(subkernel);
            Assert.AreEqual(kernel, subkernel.Parent);

            kernel2.AddChildKernel(subkernel);
        }
		public TypedFactoryInterceptor(IKernel parent, ITypedFactoryComponentSelector componentSelector)
		{
			ComponentSelector = componentSelector;
			kernel = new DefaultKernel();
			parent.AddChildKernel(kernel);
		}