Sobes.tech
Junior — Middle

Πώς καθορίζεται η διάρκεια ζωής ενός αντικειμένου μετά την ενσωμάτωσή του μέσω του μηχανισμού Dependency Injection;

sobes.tech AI

Απάντηση από AI

Η διάρκεια ζωής ενός αντικειμένου που δημιουργείται μέσω Dependency Injection (DI) καθορίζεται από τον χρόνο ζωής (lifetime), που ορίζεται κατά την εγγραφή της υπηρεσίας στο κοντέινερ DI. Στην C# (για παράδειγμα, στο ASP.NET Core), υπάρχουν τρεις βασικοί τύποι χρόνου ζωής:

  • Transient — δημιουργείται ένα νέο αντίγραφο σε κάθε αίτημα υπηρεσίας.
  • Scoped — δημιουργείται ένα αντίγραφο ανά πεδίο (π.χ., ανά HTTP αίτημα) και επαναχρησιμοποιείται εντός αυτού του πεδίου.
  • Singleton — δημιουργείται ένα αντίγραφο κατά το πρώτο αίτημα και παραμένει ζωντανό μέχρι το τέλος της εφαρμογής.

Παράδειγμα εγγραφής:

services.AddTransient<IMyService, MyService>();
services.AddScoped<IMyService, MyService>();
services.AddSingleton<IMyService, MyService>();

Επομένως, η διάρκεια ζωής του αντικειμένου εξαρτάται από τον επιλεγμένο χρόνο ζωής κατά την εγγραφή στο κοντέινερ DI.