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