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

Castle.MicroKernel.IKernel

public interface IKernel : IKernelEvents, IDisposable
The IKernel interface exposes all the functionality the MicroKernel implements.
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; } [Obsolete("Use Resolve<object>(key) instead")] [EditorBrowsable(EditorBrowsableState.Never)] object this[string key] { get; } [Obsolete("Use Resolve(service) or generic strongly typed version instead")] [EditorBrowsable(EditorBrowsableState.Never)] object this[Type service] { 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(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); void AddComponent(string key, Type classType); void AddComponent(string key, Type classType, LifestyleType lifestyle); void AddComponent(string key, Type classType, LifestyleType lifestyle, bool overwriteLifestyle); void AddComponent(string key, Type serviceType, Type classType); void AddComponent(string key, Type serviceType, Type classType, LifestyleType lifestyle); void AddComponent(string key, Type serviceType, Type classType, LifestyleType lifestyle, bool overwriteLifestyle); void AddComponent<T>(); void AddComponent<T>(LifestyleType lifestyle); void AddComponent<T>(LifestyleType lifestyle, bool overwriteLifestyle); void AddComponent<T>(Type serviceType); void AddComponent<T>(Type serviceType, LifestyleType lifestyle); void AddComponent<T>(Type serviceType, LifestyleType lifestyle, bool overwriteLifestyle); void AddComponentInstance<T>(object instance); void AddComponentInstance<T>(Type serviceType, object instance); void AddComponentInstance(string key, object instance); void AddComponentInstance(string key, Type serviceType, object instance); void AddComponentInstance(string key, Type serviceType, Type classType, object instance); void AddComponentWithExtendedProperties(string key, Type classType, IDictionary extendedProperties); void AddComponentWithExtendedProperties(string key, Type serviceType, Type classType, IDictionary extendedProperties); IKernel AddFacility(string key, IFacility facility); IKernel AddFacility<T>(string key) where T : IFacility, new; IKernel AddFacility<T>(string key, Action<T> onCreate) where T : IFacility, new; object Resolve(string key, object argumentsAsAnonymousType); object Resolve(string key, IDictionary arguments); object Resolve(Type service); object Resolve(Type service, IDictionary arguments); object Resolve(Type service, object argumentsAsAnonymousType); object Resolve(string key, Type service); T Resolve<T>(IDictionary arguments); T Resolve<T>(object argumentsAsAnonymousType); T Resolve<T>(); T Resolve<T>(string key); T Resolve<T>(string key, IDictionary arguments); object Resolve(string key, Type service, IDictionary arguments); Array ResolveAll(Type service); Array ResolveAll(Type service, IDictionary arguments); Array ResolveAll(Type service, object argumentsAsAnonymousType); TService[] ResolveAll<TService>(); TService[] ResolveAll<TService>(IDictionary arguments); TService[] ResolveAll<TService>(object argumentsAsAnonymousType); } }