Устанавливаем и настраиваем Ninject

Ninject это IoC контейнер для .NET платформы. Установим его и настроим.

  1. Установим ninject с помощью менеджера nuget
  2. Создадим класс который создает контейнер и разрешает зависимости всех объектов
    using System;
    using System.Collections.Generic;
    using System.Web.Mvc;
    using Ninject;
    using Ninject.Parameters;
    using Ninject.Syntax;
    using System.Configuration;
    
    namespace WebApp.Infrastructure
    {
        public class NinjectDependencyResolver : IDependencyResolver
        {
            private IKernel kernel;
            public NinjectDependencyResolver()
            {
                kernel = new StandardKernel();
                AddBindings();
            }
            public object GetService(Type serviceType)
            {
                return kernel.TryGet(serviceType);
            }
            public IEnumerable<object> GetServices(Type serviceType)
            {
                return kernel.GetAll(serviceType);
            }
            private void AddBindings()
            {
                // TODO: Add all binds
                // kernel.Bind<IEmailService>().To<EmailService>().InSingletonScope();
            }
        }
    }
    
  3. Добавляем строчку в Global.asax
    DependencyResolver.SetResolver(new NinjectDependencyResolver());
    

Ссылки:

По теме:
Скрываем публичные свойства, через которых происходит внедрение зависимостей ninject (c#)

Допустим есть свойство, через которое ninject внедряет зависимость [Inject] public IUsersService UsersService { get; set; } И очень хочется скрыть Read more

Получаем данные из appSettings при помощи Ninject

Создадим пользовательский атрибут ValueAttribute, который будет производным от атрибута InjectAttribute. Данный атрибут достает значение из appSettings, а Inject в свою Read more

Ninject и AOP

Ninject имеет много расширений. Одно из полезных расширений это Ninject.Extensions.Interception.DynamicProxy. Данное расширение позволяет перехватывать вызовы методов, что позволяет вынести сквозную Read more

Настраиваем Ninject для web api и mvc

Создадим три класса NinjectDependencyResolver, NinjectDependencyScope и NinjectRegistrations. В NinjectDependencyScope реализуем интерфейс System.Web.Http.Dependencies.IDependencyScope public class NinjectDependencyScope : IDependencyScope { private IResolutionRoot resolver; internal NinjectDependencyScope(IResolutionRoot Read more

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *