<PackageReference Include="Castle.Windsor" Version="5.1.0" />

IKernel

public interface IKernel : IKernelEvents, IDisposable
The IKernel interface exposes all the functionality the MicroKernel implements.
using Castle.Core.Internal; using Castle.MicroKernel.Registration; using Castle.MicroKernel.SubSystems.Configuration; using System; namespace Castle.MicroKernel { public interface IKernel : IKernelEvents, IDisposable { IComponentModelBuilder ComponentModelBuilder { get; } IConfigurationStore ConfigurationStore { get; set; } GraphNode[] GraphNodes { get; } IHandlerFactory HandlerFactory { get; } IKernel Parent { get; set; } IProxyFactory ProxyFactory { get; set; } IReleasePolicy ReleasePolicy { get; set; } IDependencyResolver Resolver { get; } void AddChildKernel(IKernel kernel); IKernel AddFacility(IFacility facility); IKernel AddFacility<T>() where T : IFacility, new; IKernel AddFacility<T>(Action<T> onCreate) where T : IFacility, new; void AddHandlerSelector(IHandlerSelector selector); void AddHandlersFilter(IHandlersFilter filter); void AddSubSystem(string name, ISubSystem subsystem); IHandler[] GetAssignableHandlers(Type service); IFacility[] GetFacilities(); IHandler GetHandler(string name); IHandler GetHandler(Type service); IHandler[] GetHandlers(); IHandler[] GetHandlers(Type service); ISubSystem GetSubSystem(string name); bool HasComponent(string name); bool HasComponent(Type service); IKernel Register(params IRegistration[] registrations); void ReleaseComponent(object instance); void RemoveChildKernel(IKernel kernel); object Resolve(Type service); object Resolve(Type service, Arguments arguments); object Resolve(string key, Type service); T Resolve<T>(Arguments arguments); T Resolve<T>(); T Resolve<T>(string key); T Resolve<T>(string key, Arguments arguments); object Resolve(string key, Type service, Arguments arguments); Array ResolveAll(Type service); Array ResolveAll(Type service, Arguments arguments); TService[] ResolveAll<TService>(); TService[] ResolveAll<TService>(Arguments arguments); } }