IKernelInternal
Extended contract of kernel, used internally.
            
                using Castle.Core;
using Castle.Core.Logging;
using System;
namespace Castle.MicroKernel
{
    public interface IKernelInternal : IKernel, IKernelEvents, IDisposable
    {
        ILogger Logger { get; set; }
        IHandler AddCustomComponent(ComponentModel model);
        IComponentActivator CreateComponentActivator(ComponentModel model);
        ILifestyleManager CreateLifestyleManager(ComponentModel model, IComponentActivator activator);
        IHandler LoadHandlerByName(string key, Type service, Arguments arguments);
        IHandler LoadHandlerByType(string key, Type service, Arguments arguments);
        IDisposable OptimizeDependencyResolution();
        object Resolve(Type service, Arguments arguments, IReleasePolicy policy, bool ignoreParentContext = false);
        object Resolve(string key, Type service, Arguments arguments, IReleasePolicy policy);
        Array ResolveAll(Type service, Arguments arguments, IReleasePolicy policy);
        IHandler CreateHandler(ComponentModel model);
        void RaiseEventsOnHandlerCreated(IHandler handler);
    }
}