Τι είναι το KeyedServices;
Η έγχυση εξάρτησης (DI) είναι πανταχού παρούσα στο ASP.NET Core. Μπορείτε να το χρησιμοποιήσετε για προσαρμοσμένες υπηρεσίες, αλλά το πιο σημαντικό, το ίδιο το πλαίσιο χρησιμοποιεί πάντα και DI. Τα περισσότερα από αυτά που μπορείτε να διαμορφώσετε στο ASP.NET Core διαμορφώνονται μέσω DI.
Για τις υπηρεσίες με κλειδί, μια άλλη πληροφορία αποθηκεύεται στο ServiceDescriptor, το οποίο είναι το κλειδί υπηρεσίας που χρησιμοποιείται για την αναγνώριση της υπηρεσίας. Το κλειδί μπορεί να είναι οποιοδήποτε αντικείμενο, αλλά συνήθως συμβολοσειρά ή απαρίθμηση (μπορεί να είναι σταθερές, επομένως μπορεί να χρησιμοποιηθεί σε ιδιότητες). Για υπηρεσίες χωρίς κλειδί, καταχώριση ταυτότητας· Για υπηρεσίες δημιουργίας κλειδιών, καταχωρείται η συνδυασμένη καταχώριση ταυτότητας με το ServiceType. ServiceTypeServiceKey。
Μια υπηρεσία δημιουργίας κλειδιών αναφέρεται σε έναν μηχανισμό που χρησιμοποιεί κλειδιά για την εγγραφή και την ανάκτηση υπηρεσιών έγχυσης εξάρτησης (DI). Καταχωρήστε μια υπηρεσία καλώντας το AddKeyedSingleton (ή AddKeyedScoped ή AddKeyedTransient), που σχετίζεται με ένα κλειδί. Χρησιμοποιήστε την ιδιότητα [FromKeyedServices] για να καθορίσετε το κλειδί για πρόσβαση στην καταχωρημένη υπηρεσία.
- ΠροσθήκηKeyedScoped
- AddKeyedSingleton
- ΠροσθήκηKeyedTransient
Δοκιμή KeyedServices
Δημιουργήστε μια νέα διεπαφή για την αποστολή ειδοποιήσεων, την εφαρμογή μεθόδων προώθησης email, SMS και μηνυμάτων, εγγραφείτε μέσω της βασικής υπηρεσίας και καλέστε τη συγκεκριμένη εφαρμογή της καθορίζοντας το αναγνωριστικό υπηρεσίας, ο κωδικός είναι ο εξής:
Εκτελέστε όπως φαίνεται παρακάτω:
Η έγχυση κώδικα μέσω ενός κατασκευαστή έχει ως εξής:
Αναφορά:
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή. |