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)); } }
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; }
/// <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); }