А как я могу передать сервисы из 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 получить необходимые сервисы.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей