Что такое инъекция зависимостей (Dependency Injection) и как ее использовать в ASP.NET?

Пользователь

от guillermo , в категории: Другие , 10 месяцев назад

Что такое инъекция зависимостей (Dependency Injection) и как ее использовать в ASP.NET?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от marc_zboncak , 10 месяцев назад

@guillermo 

Инъекция зависимостей (Dependency Injection, DI) - это паттерн проектирования, который используется для управления зависимостями объектов. Он предоставляет способ устранения жесткой связи между классами, делая их более гибкими, тестируемыми и поддающимися переиспользованию.


ASP.NET включает в себя механизм встроенной поддержки DI, который позволяет внедрять зависимости в классы, поддерживая инверсию управления (Inversion of Control, IoC).


Вот как можно использовать DI в ASP.NET:

  1. Определите интерфейс зависимости:
1
2
3
4
public interface IService
{
    void DoSomething();
}


  1. Создайте класс, который реализует этот интерфейс:
1
2
3
4
5
6
7
public class Service : IService
{
    public void DoSomething()
    {
        // Логика
    }
}


  1. Зарегистрируйте зависимость и конфигурацию DI в файле "Startup.cs":
1
2
3
4
5
public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton();
    services.AddMvc();
}


  1. Внедрите зависимость в класс через конструктор:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
public class HomeController : Controller
{
    private readonly IService _service;

    public HomeController(IService service)
    {
        _service = service;
    }

    public IActionResult Index()
    {
        _service.DoSomething();
        return View();
    }
}


В результате система DI автоматически обрабатывает создание экземпляра класса HomeController, внедряя его зависимость на основе зарегистрированной конфигурации. Это позволяет использовать различные реализации интерфейса IService, в том числе для тестирования или простой замены зависимостей.