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.