Sobes.tech
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:

  1. Ü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();
    }
}
  1. Ü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; }
}
  1. Ü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.