Sobes.tech
Junior — Middle

Обяснете концепцията за Dependency Injection в ASP.NET Core и как се прилага при разработката на приложения.

sobes.tech AI

Отговор от AI

Инжектирането на зависимости (DI) в ASP.NET Core е механизъм, който позволява внедряването на зависимости (например, услуги, репозитории) в класове без необходимостта от тяхното ръчно създаване. Това увеличава модулността, тестируемостта и улеснява управлението на зависимостите.

В ASP.NET Core DI е вградена в рамката и се конфигурира в метода ConfigureServices на класа Startup или в Program.cs.

Пример за регистрация и използване на услуга:

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

// Реализация на услугата
public class MessageService : IMessageService {
    public string GetMessage() => "Здравей от DI!";
}

// Регистрация в ConfigureServices
public void ConfigureServices(IServiceCollection services) {
    services.AddTransient<IMessageService, MessageService>();
}

// Използване чрез конструктора
public class HomeController : Controller {
    private readonly IMessageService _messageService;
    public HomeController(IMessageService messageService) {
        _messageService = messageService;
    }

    public IActionResult Index() {
        var message = _messageService.GetMessage();
        return Content(message);
    }
}

По този начин ASP.NET Core автоматично ще създаде екземпляр на MessageService и ще го предаде на контролера, елиминирайки необходимостта от ръчно създаване на обекти.