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 и ще го предаде на контролера, елиминирайки необходимостта от ръчно създаване на обекти.