Exemple #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ReadOnlyKernel"/> class.
        /// </summary>
        /// <param name="bindings">The preconfigured bindings.</param>
        /// <param name="cache">The <see cref="ICache"/> component.</param>
        /// <param name="planner">The <see cref="IPlanner"/> component.</param>
        /// <param name="scorer">The <see cref="IConstructorScorer"/> component.</param>
        /// <param name="pipeline">The <see cref="IPipeline"/> component.</param>
        /// <param name="bindingPrecedenceComparer">The <see cref="IBindingPrecedenceComparer"/> component.</param>
        /// <param name="bindingResolvers">The binding resolvers.</param>
        /// <param name="missingBindingResolvers">The missng binding resolvers.</param>
        /// <param name="settings">The <see cref="INinjectSettings"/>.</param>
        internal ReadOnlyKernel(
            INinjectSettings settings,
            IDictionary <Type, ICollection <IBinding> > bindings,
            ICache cache,
            IPlanner planner,
            IConstructorScorer scorer,
            IPipeline pipeline,
            IBindingPrecedenceComparer bindingPrecedenceComparer,
            IEnumerable <IBindingResolver> bindingResolvers,
            IEnumerable <IMissingBindingResolver> missingBindingResolvers)
        {
            this.Settings = settings;

            this.bindingResolvers        = bindingResolvers;
            this.missingBindingResolvers = missingBindingResolvers;
            this.cache    = cache;
            this.planner  = planner;
            this.scorer   = scorer;
            this.pipeline = pipeline;
            this.bindingPrecedenceComparer = bindingPrecedenceComparer;

            this.AddReadOnlyKernelBinding <IReadOnlyKernel>(this, bindings);
            this.AddReadOnlyKernelBinding <IResolutionRoot>(this, bindings);

            this.bindings = bindings.Keys.ToDictionary(type => type, type => bindings[type]);
            this.InitializeBindings();
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ReadOnlyKernel"/> class.
        /// </summary>
        /// <param name="settings">The <see cref="INinjectSettings"/>.</param>
        /// <param name="bindings">The preconfigured bindings.</param>
        /// <param name="cache">The <see cref="ICache"/> component.</param>
        /// <param name="planner">The <see cref="IPlanner"/> component.</param>
        /// <param name="constructorScorer">The <see cref="IConstructorScorer"/> component.</param>
        /// <param name="pipeline">The <see cref="IPipeline"/> component.</param>
        /// <param name="exceptionFormatter">The <see cref="IExceptionFormatter"/> component.</param>
        /// <param name="bindingPrecedenceComparer">The <see cref="IBindingPrecedenceComparer"/> component.</param>
        /// <param name="bindingResolvers">The binding resolvers.</param>
        /// <param name="missingBindingResolvers">The missing binding resolvers.</param>
        internal ReadOnlyKernel(
            INinjectSettings settings,
            Dictionary <Type, ICollection <IBinding> > bindings,
            ICache cache,
            IPlanner planner,
            IConstructorScorer constructorScorer,
            IPipeline pipeline,
            IExceptionFormatter exceptionFormatter,
            IBindingPrecedenceComparer bindingPrecedenceComparer,
            List <IBindingResolver> bindingResolvers,
            List <IMissingBindingResolver> missingBindingResolvers)
        {
            this.settings                = settings;
            this.bindings                = bindings;
            this.bindingResolvers        = bindingResolvers;
            this.missingBindingResolvers = missingBindingResolvers;
            this.cache                     = cache;
            this.planner                   = planner;
            this.constructorScorer         = constructorScorer;
            this.pipeline                  = pipeline;
            this.exceptionFormatter        = exceptionFormatter;
            this.bindingPrecedenceComparer = bindingPrecedenceComparer;

            this.AddReadOnlyKernelBinding <IReadOnlyKernel>(this, bindings);
            this.AddReadOnlyKernelBinding <IResolutionRoot>(this, bindings);
        }
Exemple #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="KernelBase"/> class.
        /// </summary>
        /// <param name="components">The component container to use.</param>
        /// <param name="settings">The configuration to use.</param>
        /// <param name="modules">The modules to load into the kernel.</param>
        protected KernelBase(IComponentContainer components, INinjectSettings settings, params INinjectModule[] modules)
        {
            Ensure.ArgumentNotNull(components, "components");
            Ensure.ArgumentNotNull(settings, "settings");
            Ensure.ArgumentNotNull(modules, "modules");

            this.Settings = settings;

            this.Components   = components;
            components.Kernel = this;

            this.AddComponents();

            this.bindingPrecedenceComparer = this.Components.Get <IBindingPrecedenceComparer>();

            this.Bind <IKernel>().ToConstant(this).InTransientScope();
            this.Bind <IResolutionRoot>().ToConstant(this).InTransientScope();

            if (this.Settings.LoadExtensions)
            {
                this.Load(this.Settings.ExtensionSearchPatterns);
            }

            this.Load(modules);
        }
Exemple #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ReadOnlyKernel"/> class.
        /// </summary>
        /// <param name="bindings">The preconfigured bindings</param>
        /// <param name="cache">Dependency injection for <see cref="ICache"/></param>
        /// <param name="planner">Dependency injection for <see cref="IPlanner"/></param>
        /// <param name="pipeline">Dependency injection for <see cref="IPipeline"/></param>
        /// <param name="bindingPrecedenceComparer">Dependency injection for <see cref="IBindingPrecedenceComparer"/></param>
        /// <param name="bindingResolvers">Dependency injection for all binding resolvers</param>
        /// <param name="missingBindingResolvers">Dependency injection for all missng binding resolvers</param>
        /// <param name="settings">Dependency injection for for <see cref="INinjectSettings"/></param>
        /// <param name="selector">Dependency injection for <see cref="ISelector"/></param>
        public ReadOnlyKernel(
            Multimap <Type, IBinding> bindings,
            ICache cache,
            IPlanner planner,
            IPipeline pipeline,
            IBindingPrecedenceComparer bindingPrecedenceComparer,
            IEnumerable <IBindingResolver> bindingResolvers,
            IEnumerable <IMissingBindingResolver> missingBindingResolvers,
            INinjectSettings settings,
            ISelector selector)
        {
            this.bindingResolvers        = bindingResolvers;
            this.missingBindingResolvers = missingBindingResolvers;
            this.cache    = cache;
            this.planner  = planner;
            this.pipeline = pipeline;
            this.bindingPrecedenceComparer = bindingPrecedenceComparer;
            this.Settings = settings;

            this.AddReadOnlyKernelBinding <IReadOnlyKernel>(this, bindings);
            this.AddReadOnlyKernelBinding <IResolutionRoot>(this, bindings);

            this.bindings = bindings.Keys.ToDictionary(type => type, type => bindings[type]);
            this.InitializeBindings(selector);
        }
 internal MyReadOnlyKernel(INinjectSettings settings,
                           Dictionary <Type, ICollection <IBinding> > bindings,
                           ICache cache,
                           IPlanner planner,
                           IConstructorScorer constructorScorer,
                           IPipeline pipeline,
                           IBindingPrecedenceComparer bindingPrecedenceComparer,
                           IEnumerable <IBindingResolver> bindingResolvers,
                           IEnumerable <IMissingBindingResolver> missingBindingResolvers)
     : base(settings,
            bindings,
            cache,
            planner,
            constructorScorer,
            pipeline,
            bindingPrecedenceComparer,
            bindingResolvers,
            missingBindingResolvers)
 {
 }
 protected CoreKernel(INinjectSettings settings, params INinjectModule[] modules)
     : base(settings, modules)
 {
     this.BindingPrecedenceComparer = this.Components.Get <IBindingPrecedenceComparer>();
 }
Exemple #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="StandardKernel"/> class.
 /// </summary>
 /// <param name="settings">The configuration to use.</param>
 /// <param name="modules">The modules to load into the kernel.</param>
 public IoCConfigurationNinjectKernel(INinjectSettings settings, params INinjectModule[] modules)
     : base(settings, modules)
 {
     this.bindingPrecedenceComparer = this.Components.Get <IBindingPrecedenceComparer>();
 }