ASP.NET MVC Core: Dependancy Injection не в контроллере

364
24 декабря 2016, 14:57

А как я могу передать сервисы из Dependancy Injection которые зарегестрированы в startup.cs в приложении ASP.NET MVC Core в классы отличные от класса контроллера?

Правильно ли я понял что их туда надо вручную прокидывать, так как статические методы и переменные это старая идеология, и она уже не поддерживается в ASP.NET MVC Core и IoC как раз и призван что бы её заменить?

UPDATED: Делаю инициализатор базы данных, и думаю откуда в нём взять ApplicationDbContext и UserManager

public static class DbInitializer
    {
        public static async void Initialize(ApplicationDbContext db, UserManager<ApplicationUser> userManager,RoleManager<IdentityRole> roleManager)
        {
            if(db.Users.Count() == 0 && db.Roles.Count() == 0)
            {
                ApplicationUser user1 = new ApplicationUser()
                {
                    UserName = "Admin",
                    Age = 30
                };
                await userManager.CreateAsync(user1,"password");
              //...
            }
        } 
    }

Класс sturtup.cs

 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory,ApplicationDbContext db, UserManager<ApplicationUser> userManager, RoleManager<IdentityRole> roleManager)
        {
           //...
            DbInitializer.Initialize(db, userManager, roleManager);
        }

Пока делаю вот так, но думаю может можно как-то сразу из DbInitializer получить необходимые сервисы.

READ ALSO
Освобождение памяти в Stack&#39;e

Освобождение памяти в Stack'e

Всем известно,что с Stack это некий участок памяти,который аллоцируется на каждый поток в виде размера 1МБ , в нем хранятся ссылки(ObjRef) на ReferenceType,пользовательские...

345
Не дописывает в файл все значения

Не дописывает в файл все значения

Данный код выполняет запись в файл (выполняется в Windows 10):

367
Работа с Word посредством C#

Работа с Word посредством C#

Здравствуйте! Возможно ли как-то после какой-то N строки, сделать так сказать скриншот следующих строк и вывести их потом отдельно в виде картинки(или...

821
Методы расширения LINQ

Методы расширения LINQ

Есть список товаров List<Product>, в котором Product имеет свойства стоимость Cost и группа GroupМожете привести пример как использовать метод расширения,...

501