I'm starting using Windsor, and I want to understand when should I use container
and when kernel
. E.g.
var c = new WindsorContainer();
c.Register(Component.For<ITt>().ImplementedBy<Tt>());
var tt = c.Resolve<ITt>();
Everything is fine and everything works,
but here is also c.kernel
that can do the same, what for?
var c = new WindsorConatiner();
c.kernel.Register(Component.For<ITt>().ImplementedBy<Tt>());
var tt = c.kernel.Resolve<ITt>();
Honestly I don't well understand is there any difference between "Container" and "Kernel" term. In my head it sounds like two names of the same thing in different IoC Libraries?
P.S. I read this post but still can't understand what for leave two implementations of one functionality here?
Update: Just found in my code such row
c.Kernel.Resolver.AddSubResolver(new ArrayResolver(c.Kernel));
What reason was to do it through Kernel? I completely lost