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

Άποψη: 21356|Απάντηση: 1

[Πηγή] IoC αποδοτικό Autofac

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 13/9/2016 1:14:12 μ.μ. | | |
IoC ~ Αποτελεσματικό Autofac

Δεν υπάρχει αμφιβολία ότι το αγαπημένο κοντέινερ IoC της Microsoft δεν είναι το spring.net, το unity αλλά το Autofac, λόγω της αποτελεσματικότητάς του, λόγω της απλότητάς του, επομένως χρησιμοποιείται επίσης για έργα οπωρώνων υπό την ηγεσία της Microsoft

απεικονίζει τη χρήση ενός Autofac.


Ας το ονομάσουμε τώρα:

Στην επόμενη διάλεξη, θα μιλήσω για τη χρήση του Autofac σε συγκεκριμένα έργα για έργα οπωρώνων.

Τώρα κοιτάξτε τον κύκλο ζωής του

1, InstancePerDependency

Δημιουργήστε μια νέα μοναδική παρουσία για κάθε εξάρτηση ή κλήση. Αυτός είναι επίσης ο προεπιλεγμένος τρόπος δημιουργίας παρουσιών.

Η επίσημη τεκμηρίωση εξηγεί: Διαμορφώστε το στοιχείο έτσι ώστε κάθε εξαρτώμενο στοιχείο ή κλήση στο Resolve() να λαμβάνει μια νέα, μοναδική παρουσία (προεπιλογή.)

2, InstancePerLifetimeScope

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

Η επίσημη τεκμηρίωση εξηγεί: Διαμορφώστε το στοιχείο έτσι ώστε κάθε εξαρτώμενο στοιχείο ή κλήση στο Resolve() μέσα σε ένα μόνο ILifetimeScope να λαμβάνει την ίδια, κοινόχρηστη παρουσία. Τα εξαρτώμενα στοιχεία σε διαφορετικά πεδία διάρκειας ζωής θα λάβουν διαφορετικές παρουσίες.

3, InstancePerMatchingLifetimeScope

Σε έναν αναγνωρισμένο τομέα κύκλου ζωής, κάθε εξάρτηση ή κλήση δημιουργεί μια μεμονωμένη κοινόχρηστη παρουσία. Οι παρουσίες στον γονικό τομέα μπορούν να τεθούν σε κοινή χρήση στον τομέα θυγατρικής ταυτότητας του αναγνωρισμένου τομέα κύκλου ζωής. Εάν δεν βρεθεί αναγνωρισμένος τομέας κύκλου ζωής σε ολόκληρη την ιεραρχία μεταβίβασης, δημιουργείται μια εξαίρεση: DependencyResolutionException.

Η επίσημη τεκμηρίωση εξηγεί: Διαμορφώστε το στοιχείο έτσι ώστε κάθε εξαρτώμενο στοιχείο ή κλήση στο Resolve() μέσα σε ένα ILifetimeScope με ετικέτα με οποιαδήποτε από τις παρεχόμενες τιμές ετικετών να λαμβάνει την ίδια, κοινόχρηστη παρουσία. Τα εξαρτώμενα στοιχεία σε εμβέλειες διάρκειας ζωής που είναι θυγατρικά του εύρους με ετικέτα θα μοιράζονται την παρουσία του γονικού στοιχείου. Εάν δεν μπορεί να βρεθεί εύρος με κατάλληλη ετικέτα στην ιεραρχία, εμφανίζεται ένα DependencyResolutionException.

4, InstancePerOwned

Στον κύκλο ζωής μιας παρουσίας που δημιουργήθηκε από μια παρουσία που ανήκει σε έναν τομέα κύκλου ζωής, κάθε εξαρτώμενο στοιχείο ή κλήση στη μέθοδο Resolve() δημιουργεί μια μεμονωμένη κοινόχρηστη παρουσία και ο θυγατρικός τομέας κύκλου ζωής μοιράζεται τις παρουσίες στον γονικό τομέα κύκλου ζωής. Εάν δεν βρεθεί κατάλληλος τομέας κύκλου ζωής με θυγατρικές παρουσίες στην ιεραρχία μεταβίβασης, δημιουργείται μια εξαίρεση: DependencyResolutionException.

Η επίσημη τεκμηρίωση εξηγεί:

Ρυθμίστε τις παραμέτρους του στοιχείου έτσι ώστε κάθε εξαρτώμενο στοιχείο ή κλήση στο Resolve() μέσα σε ένα ILifetimeScope που δημιουργήθηκε από μια ιδιόκτητη παρουσία να λαμβάνει την ίδια, κοινόχρηστη παρουσία. Τα εξαρτώμενα στοιχεία σε πεδία διάρκειας ζωής που είναι θυγατρικά της εμβέλειας παρουσίας που ανήκει θα μοιράζονται την παρουσία του γονικού. Εάν δεν μπορεί να βρεθεί το κατάλληλο πεδίο παρουσίας ιδιοκτησίας στην ιεραρχία, εμφανίζεται ένα DependencyResolutionException.

5, SingleInstance

Κάθε φορά που εξαρτάστε από ένα στοιχείο ή καλείτε τη μέθοδο Resolve(), λαμβάνετε την ίδια κοινόχρηστη παρουσία. Στην πραγματικότητα, είναι ένα μοντέλο singleton.

Η επίσημη τεκμηρίωση εξηγεί: Διαμορφώστε το στοιχείο έτσι ώστε κάθε εξαρτώμενο στοιχείο ή κλήση στο Resolve() να λαμβάνει την ίδια, κοινόχρηστη παρουσία.

6, InstancePerHttpRequest

Στο πλαίσιο μιας αίτησης Http, μοιραστείτε μια παρουσία ενός στοιχείου. Διαθέσιμο μόνο για asp.net ανάπτυξη MVC.





Προηγούμενος:ActionResult του MVC
Επόμενος:ConcurrentDictionary vs. Dictionary+Locking - Ντένις Γκάο
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 13/9/2016 1:15:50 μ.μ. |
Μέθοδος εγκατάστασης Nuget:

Εγκαταστήστε το Autofac

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

Mail To:help@itsvse.com