У меня есть сомнения относительно правильного шаблона DI, который будет использоваться для создания развязанного приложения.
Моя структура проекта:
Я хочу внедрить реализацию класса UserManager, и для этого я добавил зависимость от Startup.cs моего веб-приложения с помощью этого оператора:
services.AddScoped<IUserManager, UserManager>();
Для этогоЯ должен добавить ссылку на проект для проекта BestBurgerManager.Business, а также использовать его реализацию.
Это правильно с точки зрения DI?Кажется, что у этого не будет развязанного дизайна, делающего таким образом.
Реализация моего класса UserManager:
public class UserManager : IUserManager
{
private readonly IUserManager _userManager;
public UserManager(IUserManager userManager)
{
_userManager = userManager;
}
public void AddUser(User user)
{
// Adds a user.
}
public User GetUser(int userId)
{
return new User(); // Just to test DI.
}
}
Любая помощь в разъяснении этого приветствуется.