Programmēšana

Kā izmantot opciju modeli ASP.NET Core

Strādājot ar ASP.NET Core, jūs bieži norādīsit savas lietojumprogrammas iestatījumus, tos glabāsit kādā failā un pēc tam izgūsit šos iestatījumus, kad lietojumprogrammai tie būs nepieciešami. Parasti savas atkarības reģistrēsit Startup klases ConfigureServices metodē. Varat norādīt lietojumprogrammas iestatījumus appsettings.json vai kādā citā .json failā un pēc tam izmantot IOptions atkarības ievadīšanas priekšrocības, lai lasītu šos iestatījumus savā lietojumprogrammā.

Opciju modeļi nodrošina elegantu veidu, kā pievienot stingri ierakstītus iestatījumus savai ASP.NET Core lietojumprogrammai. Opciju modelis, kas ir paplašinājums IServiceCollection saskarnes augšpusē, izmanto klases priekšrocības, lai attēlotu saistīto iestatījumu grupu. Šajā rakstā ir runāts par opciju modeli, kāpēc tas ir noderīgs un kā to var izmantot darbam ar konfigurācijas datiem ASP.NET Core.

Lai strādātu ar šajā rakstā sniegtajiem kodu piemēriem, sistēmā jābūt instalētai Visual Studio 2019. Ja jums vēl nav kopijas, varat lejupielādēt Visual Studio 2019 šeit.

Izveidojiet ASP.NET Core API projektu

Vispirms izveidosim ASP.NET Core projektu Visual Studio. Pieņemot, ka Visual Studio 2019 ir instalēta jūsu sistēmā, veiciet tālāk norādītās darbības, lai izveidotu jaunu ASP.NET Core API projektu Visual Studio.

  1. Palaidiet Visual Studio IDE.
  2. Noklikšķiniet uz “Izveidot jaunu projektu”.
  3. Logā “Izveidot jaunu projektu” parādīto veidņu sarakstā atlasiet “ASP.NET Core Web Application”.
  4. Noklikšķiniet uz Tālāk.
  5. Nākamajā logā “Konfigurēt jauno projektu” norādiet jaunā projekta nosaukumu un vietu.
  6. Noklikšķiniet uz Izveidot.
  7. Logā “Izveidot jaunu ASP.NET Core tīmekļa lietojumprogrammu” augšdaļā esošajā nolaižamajā sarakstā atlasiet .NET Core kā izpildlaiku un ASP.NET Core 3.0 (vai jaunāku). Es šeit izmantošu ASP.NET Core 3.1.
  8. Atlasiet “API” kā projekta veidni, lai izveidotu jaunu ASP.NET Core API lietojumprogrammu.
  9. Pārliecinieties, vai nav atzīmētas izvēles rūtiņas “Iespējot Docker atbalstu” un “Konfigurēt HTTPS”, jo mēs šeit neizmantosim šīs funkcijas.
  10. Pārliecinieties, ka autentifikācija ir iestatīta kā “Nav autentifikācijas”, jo mēs arī neizmantosim autentifikāciju.
  11. Noklikšķiniet uz Izveidot.

Tādējādi Visual Studio tiks izveidots jauns ASP.NET Core API projekts. Logā Solution Explorer atlasiet Controllers solution mapi un noklikšķiniet uz “Add -> Controller…”, lai izveidotu jaunu kontrolleri ar nosaukumu DefaultController. Mēs izmantosim šo projektu šī raksta nākamajās sadaļās.

Ievietojiet opciju modeli ASP.NET Core

Lai izmantotu opciju modeli ASP.NET Core, jums ir nepieciešama pakete Microsoft.Extensions.Options.ConfigurationExtensions. Starp citu, ASP.NET Core lietojumprogrammas pēc noklusējuma netieši norāda uz paketi Microsoft.Extensions.Options.ConfigurationExtensions.

Izmantojot opciju modeli, parasti vēlaties izmantot klases, lai attēlotu saistīto iestatījumu grupu. Izolējot konfigurācijas iestatījumus atsevišķās klasēs, jūsu lietojumprogramma ievēro šādus principus:

  • Bažu nodalīšana: dažādos lietojumprogrammas moduļos izmantotie iestatījumi ir atdalīti viens no otra.
  • Saskarnes nošķiršanas princips: klases, kas attēlo šos iestatījumus, ir atkarīgas tikai no konfigurācijas iestatījumiem, kurus tās izmantos.

Tagad failā appsettings.json ierakstiet šādus iestatījumus.

"DatabaseSettings": {

"Server": "localhost",

"Provider": "SQL Server",

"Datu bāze": "DemoDb",

"Osta": 23,

"UserName": "sa",

"Parole": "Joydip123"

  }

Ņemiet vērā, ka jūsu konfigurācijas klasei ir jābūt publiskai iegūšanai un iestatīšanai. Mēs izmantosim šādas klases priekšrocības, lai īslaicīgi izlasītu šos iestatījumus.

 publiskā klase DatabaseSettings

    {

public string Server {get; komplekts; }

publisko virkņu nodrošinātājs {get; komplekts; }

publisko virkņu datu bāze {get; komplekts; }

public int Port {get; komplekts; }

publiskā virkne UserName {get; komplekts; }

public string Parole {get; komplekts; }

    }

Tagad varat izmantot IServiceCollection paplašinājuma konfigurēšanas metodi, lai saistītu iestatījumu klasi ar konfigurāciju, kā parādīts tālāk sniegtajā koda fragmentā.

public void ConfigureServices (IServiceCollection pakalpojumi)

{

pakalpojumi.AddControllers ();

pakalpojumi. Konfigurēt

(opcijas => Configuration.GetSection ("DatabaseSettings"). Bind (opcijas));

}

Konfigurācijas datu nolasīšana kontrolierī programmā ASP.NET Core

Tagad mēs izmantosim iepriekš izveidoto DefaultController priekšrocības, lai parādītu, kā mēs varam nolasīt konfigurācijas datus kontrolierī. Interfeiss IOptions atklāj vērtību Value, kuru var izmantot, lai izgūtu iestatījumu klases instanci.

Šis koda fragments parāda, kā jūs varat izmantot DatabaseSettings klasi savā kontrolierī ar nosaukumu DefaultController. Ņemiet vērā, kā šeit ir izmantota atkarības iesmidzināšana (šajā piemērā - konstruktora iesmidzināšana).

publiskā klase DefaultController: ControllerBase

{

privāta DatabaseSettings _settings;

publiskais DefaultController (IOptions iestatījumi)

   {

_settings = settings.Value;

   }

// Darbības metodes

}

Izpildīt noteikumus par konfigurācijām ASP.NET Core

Varat arī ieviest noteiktus noteikumus, kā parādīts zemāk esošajā koda fragmentā. Ievērojiet, kā SQL Server vai MySQL palīgklases gadījums šeit tiek pievienots kā vienskaitlis.

pakalpojumi. Konfigurēt (opcijas =>

 {

ja (opcijas.Provider.ToLower (). Apgriezt (). Vienāds ("sqlserver"))

     {

pakalpojumi.AddSingleton (jauns SqlDbHelper ());

     }

else if (options.Provider.ToLower (). Trim (). Vienāds ("mysql"))

     {

pakalpojumi.AddSingleton (jauns MySqlDbHelper ());

     }

 });

Atbalsts stingri ierakstītai konfigurācijai ir lieliska ASP.NET Core funkcija, kas ļauj piemērot bažas un saskarnes nošķiršanas principus. Turpmākajā ziņojumā par opciju modeli es runāšu par konfigurācijas validēšanu un atkārtoti ielādējamu konfigurāciju, īpašu uzmanību pievēršot IOptionsMonitor saskarnei. Līdz tam šeit varat uzzināt vairāk par opciju modeli Microsoft tiešsaistes dokumentācijā.

Kā darīt vairāk programmās ASP.NET un ASP.NET Core:

  • Kā izmantot atmiņas kešatmiņu ASP.NET Core
  • Kā rīkoties ar kļūdām ASP.NET Web API
  • Kā pārsūtīt vairākus parametrus Web API kontroliera metodēm
  • Kā reģistrēt pieprasījuma un atbildes metadatus ASP.NET Web API
  • Kā strādāt ar HttpModules ASP.NET
  • Uzlabota versiju veidošana ASP.NET Core Web API
  • Kā izmantot atkarības injekciju ASP.NET Core
  • Kā strādāt ar sesijām ASP.NET
  • Kā strādāt ar HTTPHandleriem ASP.NET
  • Kā izmantot IHostedService ASP.NET Core
  • Kā patērēt WCF SOAP pakalpojumu ASP.NET Core
  • Kā uzlabot ASP.NET Core lietojumprogrammu veiktspēju
  • Kā patērēt ASP.NET Core Web API, izmantojot RestSharp
  • Kā strādāt ar reģistrēšanos ASP.NET Core
  • Kā izmantot MediatR ASP.NET Core
  • Kā strādāt ar sesijas stāvokli ASP.NET Core
  • Kā Nancy izmantot ASP.NET Core
  • Izprotiet parametru saistīšanu ASP.NET Web API
  • Kā augšupielādēt failus ASP.NET Core MVC
  • Kā ieviest globālo izņēmumu apstrādi ASP.NET Core Web API
  • Kā ieviest veselības pārbaudes ASP.NET Core
  • Labākā prakse kešatmiņā ASP.NET
  • Kā izmantot Apache Kafka ziņojumapmaiņu .NET
  • Kā iespējot CORS savā tīmekļa API
  • Kad lietot WebClient pret HttpClient pret HttpWebRequest
  • Kā strādāt ar Redis kešatmiņu .NET
  • Kad .NET izmantot Task.WaitAll pret Task.WhenAll
$config[zx-auto] not found$config[zx-overlay] not found