Junior — Middle
Auf welche Weise kann die Dependency Injection in die Controller der Anwendung implementiert werden?
sobes.tech KI
Antwort von AI
Die Dependency Injection (DI) in Controller einer Anwendung in C# kann auf verschiedene Weisen implementiert werden:
- Über den Konstruktor — die gebräuchlichste und empfohlene Methode. Abhängigkeiten werden über die Parameter des Konstruktors des Controllers übergeben.
public class MyController : Controller
{
private readonly IService _service;
public MyController(IService service)
{
_service = service;
}
public IActionResult Index()
{
// Verwendung von _service
return View();
}
}
- Über Eigenschaften (Property Injection) — Abhängigkeiten werden über Eigenschaften des Controllers gesetzt. Weniger bevorzugt, da Abhängigkeiten möglicherweise nicht rechtzeitig initialisiert werden.
public class MyController : Controller
{
[Inject]
public IService Service { get; set; }
}
- Über Methoden (Method Injection) — Abhängigkeiten werden als Parameter an die Methoden des Controllers übergeben.
public IActionResult Index([FromServices] IService service)
{
// Verwendung von service
return View();
}
In ASP.NET Core unterstützt der eingebaute DI-Container all diese Methoden, aber die Konstruktorinjektion ist die sauberste und am einfachsten für Tests.