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

Πώς να χρησιμοποιήσετε το μοτίβο επιλογών στο ASP.NET Core

Όταν εργάζεστε στο ASP.NET Core, συχνά θα καθορίζετε τις ρυθμίσεις της εφαρμογής σας, θα τις αποθηκεύετε σε κάποιο αρχείο και, στη συνέχεια, θα ανακτάτε αυτές τις ρυθμίσεις όταν τις χρειάζονται η εφαρμογή. Συνήθως, θα καταχωρίζατε τις εξαρτήσεις σας στη μέθοδο ConfigureServices της κλάσης εκκίνησης. Μπορείτε να καθορίσετε τις ρυθμίσεις της εφαρμογής σας στο appsettings.json ή σε κάποιο άλλο αρχείο .json και, στη συνέχεια, να επωφεληθείτε από την έγχυση εξάρτησης μέσω των επιλογών για να διαβάσετε αυτές τις ρυθμίσεις στην εφαρμογή σας.

Τα μοτίβα επιλογών παρέχουν έναν κομψό τρόπο για να προσθέσετε έντονα δακτυλογραφημένες ρυθμίσεις στην εφαρμογή ASP.NET Core. Το μοτίβο επιλογών, το οποίο είναι μια επέκταση στην κορυφή της διεπαφής IServiceCollection, εκμεταλλεύεται τάξεις για να αντιπροσωπεύσει μια ομάδα σχετικών ρυθμίσεων. Αυτό το άρθρο μιλά για το μοτίβο επιλογών, γιατί είναι χρήσιμο και πώς μπορεί να χρησιμοποιηθεί για εργασία με δεδομένα διαμόρφωσης στο ASP.NET Core.

Για να εργαστείτε με τα παραδείγματα κώδικα που παρέχονται σε αυτό το άρθρο, θα πρέπει να έχετε εγκαταστήσει το Visual Studio 2019 στο σύστημά σας. Εάν δεν έχετε ήδη αντίγραφο, μπορείτε να κατεβάσετε το Visual Studio 2019 εδώ.

Δημιουργήστε ένα έργο ASP.NET Core API

Πρώτα απ 'όλα, ας δημιουργήσουμε ένα έργο ASP.NET Core στο Visual Studio. Υποθέτοντας ότι το Visual Studio 2019 είναι εγκατεστημένο στο σύστημά σας, ακολουθήστε τα βήματα που περιγράφονται παρακάτω για να δημιουργήσετε ένα νέο έργο ASP.NET Core API στο 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 3.0 (ή μεταγενέστερη έκδοση) από την αναπτυσσόμενη λίστα στην κορυφή. Θα χρησιμοποιήσω το ASP.NET Core 3.1 εδώ.
  8. Επιλέξτε "API" ως πρότυπο έργου για να δημιουργήσετε μια νέα εφαρμογή ASP.NET Core API.
  9. Βεβαιωθείτε ότι τα πλαίσια ελέγχου "Ενεργοποίηση υποστήριξης Docker" και "Διαμόρφωση για HTTPS" δεν είναι επιλεγμένα, καθώς δεν θα χρησιμοποιούμε αυτές τις δυνατότητες εδώ.
  10. Βεβαιωθείτε ότι ο Έλεγχος ταυτότητας έχει οριστεί ως "Χωρίς έλεγχο ταυτότητας", καθώς ούτε θα χρησιμοποιούμε έλεγχο ταυτότητας.
  11. Κάντε κλικ στο Δημιουργία.

Αυτό θα δημιουργήσει ένα νέο έργο ASP.NET Core API στο Visual Studio. Επιλέξτε το φάκελο Controllers solution στο παράθυρο Solution Explorer και κάντε κλικ στο "Add -> Controller ..." για να δημιουργήσετε ένα νέο χειριστήριο με το όνομα DefaultController. Θα χρησιμοποιήσουμε αυτό το έργο στις επόμενες ενότητες αυτού του άρθρου.

Εφαρμόστε το μοτίβο επιλογών στο ASP.NET Core

Για να χρησιμοποιήσετε το μοτίβο επιλογών στο ASP.NET Core, χρειάζεστε το πακέτο Microsoft.Extensions.Options.ConfigurationExtensions. Παρεμπιπτόντως, οι εφαρμογές Core ASP.NET αναφέρονται σιωπηρά στο πακέτο Microsoft.Extensions.Options.ConfigurationExtensions από προεπιλογή.

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

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

Τώρα γράψτε τις ακόλουθες ρυθμίσεις στο αρχείο appsettings.json.

"Ρυθμίσεις βάσης δεδομένων": {

"Διακομιστής": "localhost",

"Provider": "SQL Server",

"Βάση δεδομένων": "DemoDb",

"Λιμάνι": 23,

"Όνομα χρήστη": "sa",

"Κωδικός πρόσβασης": "Joydip123"

  }

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

 Ρυθμίσεις βάσης δεδομένων δημόσιας τάξης

    {

δημόσιος διακομιστής συμβολοσειράς {get; σειρά; }

δημόσια συμβολοσειρά Provider {get; σειρά; }

Δημόσια συμβολοσειρά βάσης δεδομένων {get; σειρά; }

δημόσια int Port {get; σειρά; }

δημόσια συμβολοσειρά UserName {get; σειρά; }

δημόσιος κωδικός πρόσβασης κωδικού πρόσβασης {get; σειρά; }

    }

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

public void ConfigureServices (υπηρεσίες IServiceCollection)

{

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

υπηρεσίες. Διαμόρφωση

(επιλογές => Configuration.GetSection ("DatabaseSettings"). Bind (επιλογές));

}

Διαβάστε τα δεδομένα διαμόρφωσης στον ελεγκτή στο ASP.NET Core

Τώρα θα εκμεταλλευτούμε το DefaultController που δημιουργήσαμε νωρίτερα για να δείξουμε πώς μπορούμε να διαβάσουμε τα δεδομένα διαμόρφωσης στον ελεγκτή. Η διεπαφή IOptions εκθέτει μια ιδιότητα Value που μπορεί να χρησιμοποιηθεί για την ανάκτηση της παρουσίας της κλάσης ρυθμίσεων.

Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να χρησιμοποιήσετε την κλάση DatabaseSettings στον ελεγκτή σας με το όνομα DefaultController. Σημειώστε πώς έχει χρησιμοποιηθεί εδώ η έγχυση εξάρτησης (έγχυση κατασκευαστή σε αυτό το παράδειγμα).

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

{

ιδιωτικά DatabaseSettings _settings;

δημόσιο DefaultController (ρυθμίσεις IOptions)

   {

_settings = settings.Value;

   }

// Μέθοδοι δράσης

}

Επιβολή κανόνων για διαμορφώσεις στο ASP.NET Core

Μπορείτε επίσης να επιβάλλετε ορισμένους κανόνες, όπως φαίνεται στο παρακάτω απόσπασμα κώδικα. Σημειώστε πώς προστίθεται μια παρουσία της κλάσης βοηθού για SQL Server ή MySQL ως μονόκλινο εδώ.

υπηρεσίες. Διαμόρφωση (επιλογές =>

 {

if (options.Provider.ToLower (). Περικοπή (). Ισούται ("sqlserver"))

     {

υπηρεσίες.AddSingleton (νέο SqlDbHelper ());

     }

αλλιώς εάν (options.Provider.ToLower (). Περικοπή (). Ισούται ("mysql"))

     {

υπηρεσίες.AddSingleton (νέο MySqlDbHelper ());

     }

 });

Η υποστήριξη για έντονα δακτυλογραφημένη διαμόρφωση είναι μια εξαιρετική δυνατότητα στο ASP.NET Core που σας δίνει τη δυνατότητα να εφαρμόσετε τον διαχωρισμό των ανησυχιών και τις αρχές διαχωρισμού διεπαφών. Σε μια μελλοντική ανάρτηση εδώ σχετικά με το μοτίβο επιλογών, θα μιλήσω για επικύρωση διαμόρφωσης και επαναφορτιζόμενη διαμόρφωση με ειδική εστίαση στη διεπαφή IOptionsMonitor. Μέχρι τότε, μπορείτε να διαβάσετε περισσότερα σχετικά με το μοτίβο επιλογών στην ηλεκτρονική τεκμηρίωση της Microsoft εδώ.

Πώς να κάνετε περισσότερα στα ASP.NET και ASP.NET Core:

  • Τρόπος χρήσης της προσωρινής αποθήκευσης στη μνήμη στο ASP.NET Core
  • Πώς να χειριστείτε σφάλματα στο ASP.NET Web API
  • Τρόπος μετάδοσης πολλαπλών παραμέτρων σε μεθόδους ελεγκτή API Ιστού
  • Τρόπος καταγραφής των μεταδεδομένων αιτήματος και απόκρισης στο ASP.NET Web API
  • Πώς να εργαστείτε με HttpModules στο ASP.NET
  • Προηγμένη έκδοση στο ASP.NET Core Web API
  • Πώς να χρησιμοποιήσετε την ένεση εξάρτησης στο ASP.NET Core
  • Πώς να εργαστείτε με συνεδρίες στο ASP.NET
  • Πώς να εργαστείτε με HTTPHandlers στο ASP.NET
  • Πώς να χρησιμοποιήσετε το IHostedService στο ASP.NET Core
  • Πώς να καταναλώσετε μια υπηρεσία WCF SOAP στο ASP.NET Core
  • Πώς να βελτιώσετε την απόδοση των εφαρμογών ASP.NET Core
  • Πώς να καταναλώσετε ένα ASP.NET Core Web API χρησιμοποιώντας το RestSharp
  • Πώς να εργαστείτε με τη σύνδεση στο ASP.NET Core
  • Πώς να χρησιμοποιήσετε το MediatR στο ASP.NET Core
  • Τρόπος εργασίας με την κατάσταση συνεδρίας στον ASP.NET Core
  • Πώς να χρησιμοποιήσετε το Nancy στο ASP.NET Core
  • Κατανοήστε τη δέσμευση παραμέτρων στο ASP.NET Web API
  • Πώς να ανεβάσετε αρχεία στο ASP.NET Core MVC
  • Τρόπος εφαρμογής του παγκόσμιου χειρισμού εξαιρέσεων στο ASP.NET Core Web API
  • Πώς να εφαρμόσετε ελέγχους υγείας στο ASP.NET Core
  • Βέλτιστες πρακτικές στην προσωρινή αποθήκευση στο ASP.NET
  • Πώς να χρησιμοποιήσετε τα μηνύματα Apache Kafka στο .NET
  • Πώς να ενεργοποιήσετε το CORS στο Web API σας
  • Πότε να χρησιμοποιήσετε το WebClient εναντίον HttpClient εναντίον HttpWebRequest
  • Πώς να εργαστείτε με το Redis Cache στο .NET
  • Πότε να χρησιμοποιήσετε το Task.WaitAll εναντίον Task.WhenAll στο .NET