Sobes.tech
Junior — Middle

Kuidas saab rakenduse kontrollerites sõltuvuste sisestamist rakendada?

sobes.tech AI

Vastus AI-lt

Sõltuvuste sisestamine (Dependency Injection, DI) C# rakenduse kontrolleritesse võib olla teostatav mitmel viisil:

  1. Konstruktoriga — kõige levinum ja soovitatav viis. Sõltuvused edastatakse kontrolleri konstruktorile parameetrite kaudu.
public class MyController : Controller
{
    private readonly IService _service;

    public MyController(IService service)
    {
        _service = service;
    }

    public IActionResult Index()
    {
        // Kasutades _service
        return View();
    }
}
  1. Oma omaduste kaudu (Property Injection) — sõltuvused määratakse kontrolleri omaduste kaudu. Vähem soovitatav, kuna sõltuvused võivad mitte olla õigel ajal initsialiseeritud.
public class MyController : Controller
{
    [Inject]
    public IService Service { get; set; }
}
  1. Meetodite kaudu (Method Injection) — sõltuvused edastatakse meetodite parameetritena kontrolleris.
public IActionResult Index([FromServices] IService service)
{
    // Kasutades service
    return View();
}

ASP.NET Core sisseehitatud DI konteiner toetab kõiki neid meetodeid, kuid konstruktoripõhine sisestus on kõige puhtam ja testimise jaoks mugavam.