Junior — Middle
Με ποιους τρόπους μπορεί να υλοποιηθεί η εισαγωγή εξαρτήσεων στους ελεγκτές της εφαρμογής;
sobes.tech AI
Απάντηση από AI
Η εισαγωγή εξαρτήσεων (Dependency Injection, DI) στους ελεγκτές μιας εφαρμογής σε C# μπορεί να υλοποιηθεί με διάφορους τρόπους:
- Μέσω του κατασκευαστή — ο πιο συνηθισμένος και συστηνόμενος τρόπος. Οι εξαρτήσεις περνούν μέσω των παραμέτρων του κατασκευαστή του ελεγκτή.
public class MyController : Controller
{
private readonly IService _service;
public MyController(IService service)
{
_service = service;
}
public IActionResult Index()
{
// Χρήση του _service
return View();
}
}
- Μέσω ιδιοτήτων (Property Injection) — οι εξαρτήσεις ορίζονται μέσω των ιδιοτήτων του ελεγκτή. Είναι λιγότερο προτιμητέο, καθώς οι εξαρτήσεις μπορεί να μην έχουν αρχικοποιηθεί εγκαίρως.
public class MyController : Controller
{
[Inject]
public IService Service { get; set; }
}
- Μέσω μεθόδων (Method Injection) — οι εξαρτήσεις περνούν ως παράμετροι στις μεθόδους του ελεγκτή.
public IActionResult Index([FromServices] IService service)
{
// Χρήση του service
return View();
}
Στο ASP.NET Core, ο ενσωματωμένος διαχειριστής DI υποστηρίζει όλες αυτές τις μεθόδους, αλλά η εισαγωγή μέσω του κατασκευαστή είναι η πιο καθαρή και εύχρηστη για δοκιμές.