Junior — Middle
Vysvětlete koncept Dependency Injection v ASP.NET Core a jak se používá při vývoji aplikací.
sobes.tech AI
Odpověď od AI
Injekce závislostí (DI) v ASP.NET Core je mechanismus, který umožňuje vkládání závislostí (například služeb, repozitářů) do tříd bez nutnosti je ručně vytvářet. To zvyšuje modularitu, testovatelnost a zjednodušuje správu závislostí.
V ASP.NET Core je DI integrováno do rámce a konfiguruje se v metodě ConfigureServices třídy Startup nebo v Program.cs.
Příklad registrace a použití služby:
// Rozhraní služby
public interface IMessageService {
string GetMessage();
}
// Implementace služby
public class MessageService : IMessageService {
public string GetMessage() => "Ahoj z DI!";
}
// Registrace v ConfigureServices
public void ConfigureServices(IServiceCollection services) {
services.AddTransient<IMessageService, MessageService>();
}
// Použití přes konstruktor
public class HomeController : Controller {
private readonly IMessageService _messageService;
public HomeController(IMessageService messageService) {
_messageService = messageService;
}
public IActionResult Index() {
var message = _messageService.GetMessage();
return Content(message);
}
}
Tímto způsobem ASP.NET Core automaticky vytvoří instanci MessageService a předá ji do kontroleru, čímž se eliminuje potřeba manuální tvorby objektů.