Προγραμματισμός

Πώς να χρησιμοποιήσετε το Autofac στο ASP.Net Core

Η έγχυση εξάρτησης διευκολύνει τη χαλαρή σύζευξη και προάγει τη δοκιμή και τη συντήρηση. Το ASP.Net Core παρέχει ενσωματωμένη υποστήριξη για έγχυση εξάρτησης (ένα είδος αντιστροφής του ελέγχου) με ένα μινιμαλιστικό δοχείο έγχυσης εξάρτησης. Ωστόσο, το ενσωματωμένο δοχείο δεν διαθέτει πολλά από τα χαρακτηριστικά μιας πλήρους έγχυσης εξάρτησης ή αναστροφής του δοχείου ελέγχου.

Για να το ξεπεράσετε, μπορείτε να χρησιμοποιήσετε κοντέινερ τρίτων στο ASP.Net Core. Με άλλα λόγια, μπορείτε εύκολα να αντικαταστήσετε το ενσωματωμένο κοντέινερ με ένα κοντέινερ τρίτου μέρους. Το Autofac είναι μια αντιστροφή του κοντέινερ ελέγχου που μπορεί να χρησιμοποιηθεί για την επίλυση εξαρτήσεων. Αυτό το άρθρο παρέχει μια συζήτηση για το πώς μπορούμε να συνεργαστούμε με το Autofac στο ASP.Net Core.

Δημιουργήστε ένα έργο ASP.Net Core στο Visual Studio

Αρχικά ας δημιουργήσουμε ένα έργο ASP.Net Core στο Visual Studio. Υποθέτοντας ότι το Visual Studio 2017 ή το Visual Studio 2019 είναι εγκατεστημένο στο σύστημά σας, ακολουθήστε τα βήματα που περιγράφονται παρακάτω για να δημιουργήσετε ένα νέο έργο ASP.Net Core στο Visual Studio.

  1. Εκκινήστε το Visual Studio IDE.
  2. Κάντε κλικ στο "Δημιουργία νέου έργου".
  3. Στο παράθυρο "Δημιουργία νέου έργου", επιλέξτε "ASP.Net Core Web Application" από τη λίστα των προτύπων που εμφανίζονται.
  4. Κάντε κλικ στο Επόμενο.
  5. Στο παράθυρο "Διαμόρφωση του νέου έργου", καθορίστε το όνομα και την τοποθεσία για το νέο έργο.
  6. Κάντε κλικ στο Δημιουργία.
  7. Στο παράθυρο "Δημιουργία νέας εφαρμογής ASP.Net Core Web", επιλέξτε .Net Core ως χρόνο εκτέλεσης και ASP.Net Core 2.2 (ή μεταγενέστερη έκδοση) από την αναπτυσσόμενη λίστα στην κορυφή.
  8. Επιλέξτε "Εφαρμογή Ιστού" ως πρότυπο έργου.
  9. Βεβαιωθείτε ότι τα πλαίσια ελέγχου "Ενεργοποίηση υποστήριξης Docker" και "Διαμόρφωση για HTTPS" δεν είναι επιλεγμένα, καθώς δεν θα χρησιμοποιούμε αυτές τις δυνατότητες εδώ.
  10. Βεβαιωθείτε ότι ο Έλεγχος ταυτότητας έχει οριστεί ως "Χωρίς έλεγχο ταυτότητας", καθώς ούτε θα χρησιμοποιούμε έλεγχο ταυτότητας.
  11. Κάντε κλικ στο Δημιουργία.

Αυτό θα δημιουργήσει ένα νέο έργο ASP.Net Core στο Visual Studio. Θα χρησιμοποιήσουμε αυτό το έργο στις επόμενες ενότητες αυτού του άρθρου για να συνεργαστούμε με το Autofac.

Εγκαταστήστε το Autofac στο έργο ASP.Net Core

Είναι εύκολο να εγκαταστήσετε το Autofac - μπορείτε να το εγκαταστήσετε από το NuGet. Τη στιγμή αυτής της γραφής, η τρέχουσα έκδοση του Autofac είναι 4.9.2. Για να εργαστείτε με το Autofac, θα πρέπει επίσης να εγκαταστήσετε το πακέτο Autofac.Extensions.DependencyInjection. Αυτό θα διασφαλίσει ότι έχετε εγκαταστήσει τις απαραίτητες εξαρτήσεις για εργασία με το Autofac.

Επιλέξτε το έργο ASP.Net Core Web Application που δημιουργήσατε παραπάνω και, στη συνέχεια, κάντε δεξί κλικ και εγκαταστήστε το Autofac.Extensions.DependencyInjection μέσω του NuGet Package Manager. Αποδεχτείτε τυχόν συμφωνίες αδειοδότησης για τις οποίες ενδέχεται να σας ζητηθεί κατά τη διάρκεια της εγκατάστασης. Εναλλακτικά, μπορείτε να εγκαταστήσετε αυτό το πακέτο εισάγοντας την ακόλουθη εντολή στην NuGet Package Manager Console:

Install-Package Autofac.Extensions.DependencyInjection

Δημιουργήστε μια τάξη στην εφαρμογή ASP.Net Core

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

 δημόσια διεπαφή IAuthorRepository

    {

string GetMessage ();

    }

Η κλάση AuthorRepository εφαρμόζει τη διεπαφή IAuthorRepository όπως φαίνεται παρακάτω.

 δημόσια τάξη AuthorRepository: IAuthorRepository

    {

δημόσια συμβολοσειρά GetMessage ()

        {

επιστρέψτε "Γεια Κόσμος";

        }

    }

Λάβετε υπόψη ότι πρόκειται για μια μινιμαλιστική εφαρμογή ενός αποθετηρίου - δηλαδή, δεν περιέχει τις μεθόδους CRUD που περιέχει ένα τυπικό αποθετήριο. Θα σας αφήσω να εφαρμόσετε τις μεθόδους CRUD κατάλληλα.

Ρύθμιση παραμέτρων Autofac στο ASP.Net Core

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

Το πρώτο βήμα είναι να δημιουργήσετε ένα εργαλείο δημιουργίας κοντέινερ για να καταχωρήσετε τις απαραίτητες υπηρεσίες στο κοντέινερ Autofac. Το πρώτο βήμα είναι να συμπληρώσετε τις υπηρεσίες πλαισίου χρησιμοποιώντας τη μέθοδο Συμπλήρωση όπως φαίνεται παρακάτω.

var containerBuilder = νέο ContainerBuilder ();

containerBuilder.Populate (υπηρεσίες);

Το επόμενο βήμα είναι η εγγραφή των προσαρμοσμένων υπηρεσιών στο Autofac. Για να το κάνετε αυτό, χρησιμοποιήστε τη μέθοδο RegisterType στην παρουσία δημιουργίας κοντέινερ, όπως φαίνεται παρακάτω.

containerBuilder.RegisterType (). Ως ();

Για να δημιουργήσετε το κοντέινερ, γράψτε τον ακόλουθο κωδικό.

var container = containerBuilder.Build ();

εμπορευματοκιβώτιο επιστροφής. Επίλυση ();

Ακολουθεί ο πλήρης πηγαίος κώδικας της μεθόδου ConfigureServices για την αναφορά σας:

δημόσιο IServiceProvider ConfigureServices (υπηρεσίες IServiceCollection)

   {

υπηρεσίες.AddMvc ();

var containerBuilder = νέο ContainerBuilder ();

containerBuilder.Populate (υπηρεσίες);

containerBuilder.RegisterType ().

Οπως και();

var container = containerBuilder.Build ();

εμπορευματοκιβώτιο επιστροφής. Επίλυση ();

   }

Χρησιμοποιήστε το Autofac στους ελεγκτές σας στο ASP.Net Core

Τώρα που το Autofac έχει εγκατασταθεί και ρυθμιστεί στο έργο σας, μπορείτε να ξεκινήσετε να το χρησιμοποιείτε στους ελεγκτές σας. Το ακόλουθο απόσπασμα κώδικα απεικονίζει πώς μπορείτε να επιλύσετε εξαρτήσεις στο ValueController.

  δημόσια τάξη ValueController: ControllerBase

  {

ιδιωτικό IAuthorRepository _authorRepository;

Δημόσιες τιμέςController (IAuthorRepository authorRepository)

        {

_authorRepository = authorRepository;

} // GET api / τιμές

[HttpGet]

δημόσια ActionResult Get ()

        {

επιστροφή _authorRepository.GetMessage ();

        }

// Άλλες μέθοδοι δράσης

  }

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

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

Έχουμε δει πώς μπορεί να χρησιμοποιηθεί το Autofac για να αντικαταστήσει το προεπιλεγμένο δοχείο έγχυσης εξάρτησης στο ASP.Net Core, αλλά έχουμε χάσει μόνο την επιφάνεια των δυνατοτήτων του. Θα εξερευνήσω το Autofac σε βάθος σε μελλοντικές δημοσιεύσεις εδώ.