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