Programavimas

Kaip naudoti ASP.NET Core parinkčių modelį

Dirbdami „ASP.NET Core“, dažnai nurodysite savo programos nustatymus, išsaugosite juos kokiame nors faile ir tada gausite šiuos nustatymus, kai jų prireiks programai. Paprastai savo priklausomybes registruosite „Startup“ klasės „ConfigureServices“ metodu. Galite nurodyti savo programos nustatymus programoje appsettings.json ar kitame .json faile ir pasinaudoti priklausomybės injekcijos pranašumais per „IOptions“, kad perskaitytumėte šiuos nustatymus savo programoje.

Parinkčių šablonai suteikia elegantišką būdą pridėti labai tipiškų parametrų prie savo ASP.NET Core programos. Parinkčių šablonas, kuris yra „IServiceCollection“ sąsajos viršuje, naudoja klasių pranašumus, kad būtų atstovaujama susijusių parametrų grupei. Šiame straipsnyje kalbama apie parinkčių modelį, kodėl jis yra naudingas ir kaip jį galima naudoti dirbant su konfigūracijos duomenimis sistemoje ASP.NET Core.

Norėdami dirbti su šiame straipsnyje pateiktais kodų pavyzdžiais, sistemoje turite būti įdiegę „Visual Studio 2019“. Jei dar neturite kopijos, galite atsisiųsti „Visual Studio 2019“ čia.

Sukurkite ASP.NET Core API projektą

Pirmiausia sukurkime ASP.NET Core projektą „Visual Studio“. Darant prielaidą, kad „Visual Studio 2019“ yra įdiegta jūsų sistemoje, atlikite toliau nurodytus veiksmus, kad sukurtumėte naują „ASP.NET Core API“ projektą „Visual Studio“.

  1. Paleiskite „Visual Studio IDE“.
  2. Spustelėkite „Sukurti naują projektą“.
  3. Lange „Kurti naują projektą“ iš rodomų šablonų sąrašo pasirinkite „ASP.NET Core Web Application“.
  4. Spustelėkite Pirmyn.
  5. Tada rodomame lange „Konfigūruoti naują projektą“ nurodykite naujo projekto pavadinimą ir vietą.
  6. Spustelėkite Sukurti.
  7. Lange „Kurti naują ASP.NET pagrindinę žiniatinklio programą“ viršuje esančiame išskleidžiamajame sąraše pasirinkite .NET Core kaip vykdymo laiką ir ASP.NET Core 3.0 (ar naujesnę). Čia naudosiu ASP.NET Core 3.1.
  8. Pasirinkite „API“ kaip projekto šabloną, kad sukurtumėte naują ASP.NET Core API programą.
  9. Įsitikinkite, kad nepažymėti žymės langeliai „Įgalinti„ Docker “palaikymą“ ir „Konfigūruoti HTTPS“, nes čia nenaudosime tų funkcijų.
  10. Įsitikinkite, kad autentifikavimas nustatytas kaip „Be autentifikavimo“, nes mes taip pat nenaudosime autentifikavimo.
  11. Spustelėkite Sukurti.

Tai sukurs naują ASP.NET Core API projektą „Visual Studio“. Lange Solution Explorer pasirinkite „Controllers solution“ aplanką ir spustelėkite „Add -> Controller…“, kad sukurtumėte naują valdiklį pavadinimu „DefaultController“. Šį projektą panaudosime tolesniuose šio straipsnio skyriuose.

Įdiekite ASP.NET Core parinkčių modelį

Norėdami naudoti ASP.NET Core parinkčių šabloną, jums reikia paketo „Microsoft.Extensions.Options.ConfigurationExtensions“. Beje, ASP.NET „Core“ programos netiesiogiai nurodo „Microsoft.Extensions.Options.ConfigurationExtensions“ paketą pagal numatytuosius nustatymus.

Kai naudojate parinkčių šabloną, paprastai norėtumėte naudoti klases, kad atspindėtumėte susijusių parametrų grupę. Programa, išskirdama konfigūracijos parametrus į atskiras klases, laikosi šių principų:

  • Problemų atskyrimas: skirtinguose programos moduliuose naudojami nustatymai yra atsieti.
  • Sąsajos atskyrimo principas: Šiuos parametrus žyminčios klasės priklauso tik nuo konfigūracijos parametrų, kuriuos jos naudotų.

Dabar faile appsettings.json įrašykite šiuos nustatymus.

„DatabaseSettings“: {

„Server“: „localhost“,

„Teikėjas“: „SQL serveris“,

"Duomenų bazė": "DemoDb",

„Uostas“: 23,

"Vartotojo vardas": "sa",

„Slaptažodis“: „Joydip123“

  }

Atminkite, kad jūsų konfigūracijos klasėje turėtų būti viešojo gavimo ir nustatymo ypatybės. Mes pasinaudosime šios klasės pranašumais, kad netrukus perskaitytume šiuos nustatymus.

 viešosios klasės duomenų bazės nustatymai

    {

viešoji eilutė Server {get; rinkinys; }

viešosios eilutės teikėjas {get; rinkinys; }

viešosios eilutės duomenų bazė {get; rinkinys; }

public int Port {get; rinkinys; }

viešoji eilutė „UserName“ {get; rinkinys; }

viešoji eilutė Slaptažodis {get; rinkinys; }

    }

Dabar galite naudoti „IServiceCollection“ plėtinio konfigūravimo metodą, kad susietumėte nustatymų klasę su savo konfigūracija, kaip parodyta toliau pateiktame kodo fragmente.

public void „ConfigureServices“ („IServiceCollection“ paslaugos)

{

paslaugos.AddControllers ();

paslaugos. Konfigūruoti

(parinktys => Configuration.GetSection ("DatabaseSettings"). Susieti (parinktys));

}

Perskaitykite konfigūracijos duomenis valdiklyje ASP.NET Core

Dabar pasinaudosime anksčiau sukurtu „DefaultController“ privalumais, kad pademonstruotume, kaip galime skaityti konfigūracijos duomenis valdiklyje. „IOptions“ sąsajoje pateikiama ypatybė „Vertė“, kurią galima naudoti nustatymų klasės egzemplioriui nuskaityti.

Šis kodo fragmentas parodo, kaip galite naudoti „DatabaseSettings“ klasę savo valdiklyje pavadinimu „DefaultController“. Atkreipkite dėmesį, kaip čia buvo naudojamas priklausomybės įpurškimas (konstruktoriaus įpurškimas šiame pavyzdyje).

viešoji klasė DefaultController: ControllerBase

{

privati ​​„DatabaseSettings“ _nustatymai;

public DefaultController („IOptions“ nustatymai)

   {

_settings = settings.Value;

   }

// Veiksmo metodai

}

Vykdyti ASP.NET Core konfigūracijų taisykles

Taip pat galite vykdyti tam tikras taisykles, kaip parodyta toliau pateiktame kodo fragmente. Atkreipkite dėmesį, kaip čia kaip vienas pavienis elementas pridedamas SQL Server arba MySQL pagalbininkų klasės egzempliorius.

paslaugos. Konfigūruoti (parinktys =>

 {

jei (parinktys.Teikėjas.ToLower (). Apkirpkite (). Lygu ("sqlserver"))

     {

paslaugos.AddSingleton (naujas SqlDbHelper ());

     }

else if (options.Provider.ToLower (). Trim (). Lygu ("mysql"))

     {

paslaugos. „AddSingleton“ (naujas „MySqlDbHelper“);

     }

 });

Patvirtintos konfigūracijos palaikymas yra puiki „ASP.NET Core“ savybė, leidžianti taikyti rūpesčių ir sąsajos atskyrimo principų atskyrimą. Būsimame įraše apie parinkčių modelį kalbėsiu apie konfigūracijos patvirtinimą ir iš naujo įkeliamą konfigūraciją, ypatingą dėmesį skirdamas „IOptionsMonitor“ sąsajai. Iki tol galite daugiau sužinoti apie „Microsoft“ internetinės dokumentacijos parinkčių modelį čia.

Kaip padaryti daugiau naudojant ASP.NET ir ASP.NET Core:

  • Kaip naudoti atminties talpyklą ASP.NET Core
  • Kaip tvarkyti klaidas ASP.NET žiniatinklio API
  • Kaip perduoti kelis parametrus žiniatinklio API valdiklio metodams
  • Kaip registruoti užklausos ir atsakymo metaduomenis ASP.NET žiniatinklio API
  • Kaip dirbti su „HttpModules“ ASP.NET
  • Išplėstinė ASP.NET „Core Web API“ versijų versija
  • Kaip naudoti priklausomybės injekciją ASP.NET Core
  • Kaip dirbti su sesijomis ASP.NET
  • Kaip dirbti su HTTPHandleriais sistemoje ASP.NET
  • Kaip naudoti „IHostedService“ ASP.NET Core
  • Kaip vartoti WCF SOAP paslaugą ASP.NET Core
  • Kaip pagerinti ASP.NET Core programų veikimą
  • Kaip suvartoti ASP.NET Core Web API naudojant „RestSharp“
  • Kaip dirbti su registravimu ASP.NET Core
  • Kaip naudoti „MediatR“ ASP.NET Core
  • Kaip dirbti su seanso būsena ASP.NET Core
  • Kaip naudoti „Nancy“ ASP.NET Core
  • Supraskite parametrų susiejimą ASP.NET žiniatinklio API
  • Kaip įkelti failus į ASP.NET Core MVC
  • Kaip įdiegti visuotinį išimčių tvarkymą ASP.NET Core Web API
  • Kaip atlikti sveikatos patikrinimus ASP.NET Core
  • Geriausia ASP.NET talpyklos talpinimo praktika
  • Kaip naudoti „Apache Kafka“ pranešimus .NET
  • Kaip įgalinti CORS savo žiniatinklio API
  • Kada naudoti „WebClient“, palyginti su „HttpClient“ ir „HttpWebRequest“
  • Kaip dirbti su „Redis Cache“ .NET
  • Kada .NET naudoti „Task.WaitAll“ ir „Task.WhenAll“
$config[zx-auto] not found$config[zx-overlay] not found