IWindsorContainer
The IWindsorContainer interface exposes all the functionality that Windsor implements.
            
                using Castle.MicroKernel;
using Castle.MicroKernel.Registration;
using System;
namespace Castle.Windsor
{
    public interface IWindsorContainer : IDisposable
    {
        IKernel Kernel { get; }
        string Name { get; }
        IWindsorContainer Parent { get; set; }
        void AddChildContainer(IWindsorContainer childContainer);
        IWindsorContainer AddFacility(IFacility facility);
        IWindsorContainer AddFacility<TFacility>() where TFacility : IFacility, new;
        IWindsorContainer AddFacility<TFacility>(Action<TFacility> onCreate) where TFacility : IFacility, new;
        IWindsorContainer GetChildContainer(string name);
        IWindsorContainer Install(params IWindsorInstaller[] installers);
        IWindsorContainer Register(params IRegistration[] registrations);
        void Release(object instance);
        void RemoveChildContainer(IWindsorContainer childContainer);
        object Resolve(string key, Type service);
        object Resolve(Type service);
        object Resolve(Type service, Arguments arguments);
        T Resolve<T>();
        T Resolve<T>(Arguments arguments);
        T Resolve<T>(string key);
        T Resolve<T>(string key, Arguments arguments);
        object Resolve(string key, Type service, Arguments arguments);
        T[] ResolveAll<T>();
        Array ResolveAll(Type service);
        Array ResolveAll(Type service, Arguments arguments);
        T[] ResolveAll<T>(Arguments arguments);
    }
}