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. Η επίσημη τεκμηρίωση εξηγεί: Μοιραστείτε μια παρουσία του στοιχείου στο πλαίσιο ενός μεμονωμένου αιτήματος HTTP. Επίσημος σύνδεσμος τεκμηρίωσης: http://autofaccn.readthedocs.io/en/latest/lifetime/instance-scope.html
|