Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 2964|Απάντηση: 0

[Πηγή] ASP.NET Βασικές (είκοσι πέντε) εξαρτήσεις εγχέουν Lazy lazy lazy αρχικοποίηση

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 10/10/2023 9:14:31 μ.μ. | | | |
απαιτήσεις: Προσθέστε υπηρεσίες ASP.NET Core, εισάγετε υπηρεσίες μέσω κατασκευαστών και θέλετε να καθυστερήσετε την προετοιμασία της κλάσης υλοποίησης (διαφορετική λογική επεξεργασία σύμφωνα με τις πληροφορίες αιτήματος περιβάλλοντος HTTP) και σκεφτείτε να χρησιμοποιήσετε το Lazy<T> για τεμπέλης για τεμπέλης προετοιμασία.

Αναθεώρηση:

Πώς το Lazy in C# διατηρεί τα νήματα ασφαλή
https://www.itsvse.com/thread-10621-1-1.html

Βελτιστοποίηση απόδοσης C#: Το Lazy αρχικοποιεί το lazy με <T>καθυστέρηση
https://www.itsvse.com/thread-7700-1-1.html
Κάντε ένεση απευθείας στη διεπαφή

Ο κατασκευαστής εγχέεται απευθείας στην υπηρεσία διεπαφής και ο κώδικας έχει ως εξής:

Η εντολή εκτέλεσης έχει ως εξής:



Μπορείτε να δείτε την ακόλουθη σειρά εκτέλεσης: Κλάση υλοποίησης IA -> κονσόλα HomeController -> μέθοδος ευρετηρίου

Αρχικοποίηση με καθυστέρηση Lazy

Εάν ο κατασκευαστής του ελεγκτή αλλάξει το IA σε Lazy<IA>, το σφάλμα θα μοιάζει με αυτό:

InvalidOperationException: Unable to resolve service for type 'System.Lazy`1[WebApplication6.IA]' while attempting to activate 'WebApplication6.Controllers.HomeController'.
Το σφάλμα οφείλεται στο γεγονός ότι δεν έχουμε εγγραφεί για υπηρεσίες που σχετίζονται με το Lazy, πρέπει να καταχωρήσουμε μια Lazy<> γενική υπηρεσία, ο κωδικός έχει ως εξής:

Προσθήκη στην υπηρεσία:

Η εντολή εκτέλεσης έχει ως εξής:



Μπορείτε να δείτε τη σειρά εκτέλεσης: Κονσόλα HomeController -> Μέθοδος ευρετηρίου -> κλάση υλοποίησης IA, μπορείτε να τη δείτεΠροετοιμασία καθυστέρησης διεπαφής IAθα δημιουργήσει το αντικείμενο υλοποίησης IA όταν καλείται.

(Τέλος)





Προηγούμενος:CIDR: Διαβάστε την περιγραφή της διεύθυνσης CIDR σε ένα άρθρο
Επόμενος:Το front-end αποθηκεύει το πακέτο localForage του IndexedDB
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com