Sobes.tech
Junior — Middle
82

Можешь привести пример внедрения Dependency Injection в приложениях на ASP.NET Core?

Answer from AI

sobes.tech AI

В ASP.NET Core внедрение зависимостей (Dependency Injection, DI) реализовано из коробки через встроенный контейнер сервисов. Пример простого использования:

// Интерфейс сервиса
public interface IMessageService
{
    string GetMessage();
}

// Реализация сервиса
public class MessageService : IMessageService
{
    public string GetMessage() => "Привет из сервиса!";
}

// В Startup.cs или Program.cs (в зависимости от версии)
public void ConfigureServices(IServiceCollection services)
{
    // Регистрируем сервис с жизненным циклом Scoped
    services.AddScoped<IMessageService, MessageService>();
    services.AddControllers();
}

// Использование в контроллере
public class HomeController : ControllerBase
{
    private readonly IMessageService _messageService;

    public HomeController(IMessageService messageService)
    {
        _messageService = messageService;
    }

    [HttpGet("message")]
    public string Get() => _messageService.GetMessage();
}

Здесь IMessageService внедряется в контроллер через конструктор, а реализация MessageService регистрируется в контейнере сервисов. Это позволяет легко менять реализации и упрощает тестирование.