Στο νέο ASP.NET Core, ένας μεγάλος αριθμός ενέσεων εξάρτησης χρησιμοποιείται για τη σύνταξη κώδικα.
Για παράδειγμα, στην κλάση εκκίνησης, μπορούμε να δούμε τα εξής:
Το AddMvc AddDbContext περιλαμβάνει το AddDirectoryBrowser που χρησιμοποιούσαμε για περιηγήσεις καταλόγου πριν:
Είναι όλα πλαίσια που παρέχουν καλές υπηρεσίες και μπορούμε να τα χρησιμοποιήσουμε απευθείας εισάγοντάς τα.
Η αντιστροφή ελέγχου (IoC) είναι μια αρχή σχεδιασμού στον αντικειμενοστραφή προγραμματισμό που μπορεί να χρησιμοποιηθεί για τη μείωση της σύζευξης μεταξύ κώδικα υπολογιστή. Η πιο κοινή μέθοδος ονομάζεται Dependency Injection (DI) και υπάρχει επίσης μια μέθοδος που ονομάζεται "Dependency Lookup". Με τον έλεγχο της αντιστροφής, όταν δημιουργείται ένα αντικείμενο, μια εξωτερική οντότητα που ελέγχει όλα τα αντικείμενα του συστήματος μεταβιβάζει σε αυτό μια αναφορά στο αντικείμενο από το οποίο εξαρτάται. Μπορεί επίσης να ειπωθεί ότι οι εξαρτήσεις εγχέονται στο αντικείμενο. Για να χρησιμοποιήσετε το ioc, η κλάση Startup πρέπει να αναφέρεται Microsoft.Extensions.DependencyInjection(ps, το οποίο είναι ήδη αρκετά απλό: Microsoft.. Επέκταση... Ένεση εξάρτησης - - ,)
Εισάγετε τον κύκλο ζωής μιας υπηρεσίας
Η Microsoft παρέχει 3 κύκλους ζωής για υπηρεσίες αυτόματης έγχυσης.
Παροδικό
Μια στιγμιαία υπηρεσία κύκλου ζωής που δημιουργείται κάθε φορά που ζητείται. Αυτός ο κύκλος ζωής είναι ο καταλληλότερος για ελαφριές υπηρεσίες χωρίς κατάσταση.
Εμβέλεια
Στο ίδιο πεδίο εφαρμογής, η υπηρεσία δημιουργείται μόνο μία φορά ανά αίτημα.
Singleton (μόνο)
Το καθολικό δημιουργείται μόνο μία φορά, την πρώτη φορά που ζητείται, και στη συνέχεια χρησιμοποιείται πάντα.
Πώς χρησιμοποιείτε αυτούς τους τρεις κύκλους ζωής; Μπορούμε να χρησιμοποιήσουμε διαφορετικές μεθόδους απευθείας κατά την ένεση, ο κωδικός είναι ο εξής:
Ας δοκιμάσουμε τη συγκεκριμένη γενιά αυτών των τριών κύκλων ζωής
Γράφουμε τρεις διεπαφές με διαφορετικά ονόματα και 3 διαφορετικές για την υλοποίηση των διεπαφών, ως εξής:
Στον κατασκευαστή κάθε κλάσης υλοποίησης, δημιουργούμε ένα νέο GUID, το οποίο μας επιτρέπει να προσδιορίσουμε εάν η κλάση έχει εκτελέσει ξανά τον κατασκευαστή.
Εισαγωγή υπηρεσιών στον ελεγκτή
Υπάρχουν γενικά τρεις τρόποι έγχυσης: έγχυση κατασκευαστή, έγχυση μεθόδου και έγχυση χαρακτηριστικών. Το κοντέινερ IOC της Microsoft χρησιμοποιεί έγχυση κατασκευαστή από προεπιλογή (Η εισαγωγή χαρακτηριστικών δεν υποστηρίζεται, αλλά μπορεί να επιτευχθεί με αντικατάσταση κοντέινερ τρίτου μέρους)
Προβολή κώδικα σελίδας:
Εκτελέστε το έργο και αποκτήστε πρόσβαση σε αυτό μέσω 2 διαφορετικών προγραμμάτων περιήγησης, όπως φαίνεται παρακάτω:
Διαπιστώσαμε ότι τα GUID που δημιουργούνται δύο φορές στον στιγμιαίο κύκλο ζωής είναι ασυνεπή, υποδεικνύοντας ότι το αντικείμενο δεν είναι το ίδιο.
Ωστόσο, ο κύκλος ζωής του πεδίου εφαρμογής είναι ο ίδιος, επειδή κάτω από το ίδιο πεδίο εφαρμογής, το GUID της υπηρεσίας που χρησιμοποιείται δύο φορές στο ίδιο πρόγραμμα περιήγησης είναι το ίδιο, υποδεικνύοντας ότι χρησιμοποιείται το ίδιο αντικείμενο.
Στην περίπτωση ενός singleton, δύο διαφορετικά προγράμματα περιήγησης έχουν πάντα πρόσβαση στο ίδιο GUID, υποδεικνύοντας ότι καλείται το ίδιο αντικείμενο.
(Τέλος)
|