Ohjelmointi

Asetuskuvion käyttäminen ASP.NET Core -sovelluksessa

Kun työskentelet ASP.NET Core -sovelluksessa, määrität usein sovelluksesi asetukset, tallennat ne johonkin tiedostoon ja haet sitten nämä asetukset, kun sovellus tarvitsee niitä. Tyypillisesti rekisteröit riippuvuudet Startup-luokan ConfigureServices-menetelmään. Voit määrittää sovelluksesi asetukset appsettings.json-tiedostossa tai muussa .json-tiedostossa ja hyödyntää riippuvuuden lisäämistä IOptionsin kautta lukeaksesi nämä asetukset sovelluksessasi.

Vaihtoehtokuviot tarjoavat tyylikkään tavan lisätä voimakkaasti kirjoitetut asetukset ASP.NET Core -sovellukseen. Vaihtoehtokuvio, joka on laajennus IServiceCollection-käyttöliittymän päällä, käyttää luokkia hyödyntämällä ryhmää liittyviä asetuksia. Tässä artikkelissa kerrotaan vaihtoehtomallista, miksi se on hyödyllinen ja kuinka sitä voidaan käyttää kokoonpanotietojen käsittelyyn ASP.NET Core -sovelluksessa.

Jotta voit työskennellä tässä artikkelissa annettujen koodiesimerkkien kanssa, järjestelmässäsi on oltava asennettuna Visual Studio 2019. Jos sinulla ei vielä ole kopiota, voit ladata Visual Studio 2019 täältä.

Luo ASP.NET Core API -projekti

Ensinnäkin, luodaan ASP.NET Core -projekti Visual Studiossa. Olettaen, että Visual Studio 2019 on asennettu järjestelmään, luo uusi ASP.NET Core API -projekti Visual Studiossa noudattamalla alla olevia ohjeita.

  1. Käynnistä Visual Studio IDE.
  2. Napsauta Luo uusi projekti.
  3. Valitse Luo uusi projekti -ikkunassa ”ASP.NET Core Web Application” näytetystä malliluettelosta.
  4. Napsauta Seuraava.
  5. Määritä seuraavan projektin nimi ja sijainti uuden Konfiguroi uusi projekti -ikkunassa.
  6. Napsauta Luo.
  7. Valitse Luo uusi ASP.NET-ydinverkkosovellus -ikkunassa .NET Core ajonaikaiseksi ja ASP.NET Core 3.0 (tai uudempi) yläreunan avattavasta luettelosta. Käytän täällä ASP.NET Core 3.1: tä.
  8. Luo uusi ASP.NET Core API -sovellus valitsemalla projektimalliksi “API”.
  9. Varmista, että valintaruudut Ota Docker-tuki käyttöön ja Määritä HTTPS: lle ei ole valittu, koska emme käytä näitä ominaisuuksia täällä.
  10. Varmista, että todennukseksi on määritetty Ei todentamista, koska emme myöskään käytä todennusta.
  11. Napsauta Luo.

Tämä luo uuden ASP.NET Core API -projektin Visual Studioon. Valitse Ohjainten ratkaisukansio Solution Explorer -ikkunassa ja napsauta “Lisää -> Ohjain…” luodaksesi uuden ohjaimen nimeltä DefaultController. Käytämme tätä projektia tämän artikkelin seuraavissa osioissa.

Ota käyttöön asetusmalli ASP.NET Core -sovelluksessa

Tarvitset Microsoft.Extensions.Options.ConfigurationExtensions-paketin, jotta voit käyttää ASP.NET Core -vaihtoehdon mallia. ASP.NET Core -sovellukset viittaavat epäsuorasti oletusarvoisesti Microsoft.Extensions.Options.ConfigurationExtensions-pakettiin.

Kun käytät asetuskuviota, haluat yleensä käyttää luokkia edustamaan ryhmää liittyviä asetuksia. Eristämällä kokoonpanoasetukset erillisiin luokkiin, sovelluksesi noudattaa seuraavia periaatteita:

  • Huolenaiheiden erottaminen: Sovelluksen eri moduuleissa käytetyt asetukset on irrotettu toisistaan.
  • Liitännän erotteluperiaate: Näitä asetuksia edustavat luokat riippuvat vain niiden kokoonpanoasetuksista, joita ne käyttäisivät.

Kirjoita nyt seuraavat asetukset appsettings.json-tiedostoon.

"DatabaseSettings": {

"Palvelin": "paikallinen isäntä",

"Palveluntarjoaja": "SQL Server",

"Tietokanta": "DemoDb",

"Satama": 23,

"Käyttäjänimi": "sa",

"Salasana": "Joydip123"

  }

Huomaa, että kokoonpanoluokallasi tulisi olla julkinen get and set -ominaisuus. Hyödynnämme seuraavaa luokkaa lukemaan nämä asetukset pian.

 julkisen luokan tietokanta-asetukset

    {

julkinen merkkijono Palvelin {get; aseta; }

public string Provider {get; aseta; }

public string Database {get; aseta; }

public int Port {get; aseta; }

public string Käyttäjänimi {get; aseta; }

public string Salasana {get; aseta; }

    }

Voit nyt sitoa asetusluokan kokoonpanoon IServiceCollectionin Määritä laajennus -menetelmällä alla olevan koodinpätkän mukaisesti.

public void ConfigureServices (IServiceCollection-palvelut)

{

palvelut.AddControllers ();

Määritä

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

}

Lue kokoonpanotiedot ohjaimesta ASP.NET Core -sovelluksessa

Hyödynnämme aiemmin luomaamme DefaultController -ohjelmaa osoittaaksemme, kuinka voimme lukea määritystietoja ohjaimesta. IOptions-käyttöliittymä paljastaa Arvo-ominaisuuden, jota voidaan käyttää asetusluokan esiintymän noutamiseen.

Seuraava koodinpätkä näyttää, kuinka voit käyttää DatabaseSettings-luokkaa ohjaimessasi nimeltä DefaultController. Huomaa, miten riippuvuusinjektiota (tässä esimerkissä konstruktorin injektiota) on käytetty.

public class DefaultController: ControllerBase

{

yksityinen DatabaseSettings _settings;

public DefaultController (IOptions-asetukset)

   {

_settings = settings.Value;

   }

// Toimintamenetelmät

}

Pakota ASP.NET Core -määritysten säännöt

Voit myös pakottaa noudattamaan tiettyjä sääntöjä alla olevan koodinpätkän mukaisesti. Huomaa, kuinka SQL Serverin tai MySQL: n auttajaluokan instanssi lisätään tähän singletona.

Määritä (vaihtoehdot =>

 {

jos (options.Provider.ToLower (). Trim (). Yhtä ("sqlserver"))

     {

palvelut. AddSingleton (uusi SqlDbHelper ());

     }

else if (options.Provider.ToLower (). Trim (). Yhtä ("mysql"))

     {

palvelut. AddSingleton (uusi MySqlDbHelper ());

     }

 });

Vahvasti kirjoitettujen kokoonpanojen tuki on hieno ominaisuus ASP.NET Core -sovelluksessa, jonka avulla voit soveltaa huolenaiheita ja käyttöliittymän erotteluperiaatteita. Tulevassa valintakuvion postauksessa puhun kokoonpanon validoinnista ja ladattavasta kokoonpanosta keskittyen erityisesti IOptionsMonitor-käyttöliittymään. Siihen asti voit lukea lisää vaihtoehtomallista Microsoftin online-ohjeista täältä.

Kuinka tehdä enemmän ASP.NET- ja ASP.NET Core -sovelluksissa:

  • Kuinka käyttää muistin välimuistia ASP.NET Core -sovelluksessa
  • Kuinka käsitellä virheitä ASP.NET Web API: ssa
  • Kuinka välittää useita parametreja Web-API-ohjaimen menetelmille
  • Kuinka kirjataan pyyntö- ja vastaustiedot, ASP.NET Web API
  • Kuinka työskennellä HttpModulesin kanssa ASP.NET: ssä
  • Edistynyt versiointi ASP.NET Core Web -sovellusliittymässä
  • Kuinka riippuvuusinjektiota käytetään ASP.NET Core -sovelluksessa
  • Kuinka käyttää istuntoja ASP.NET: ssä
  • Kuinka työskennellä HTTPHandlersin kanssa ASP.NET: ssä
  • IHostedServicen käyttäminen ASP.NET Core -sovelluksessa
  • Kuinka käyttää WCF SOAP -palvelua ASP.NET Core -sovelluksessa
  • Kuinka parantaa ASP.NET Core -sovellusten suorituskykyä
  • ASP.NET Core Web -sovellusliittymän kuluttaminen RestSharpin avulla
  • Kuinka kirjautua sisään ASP.NET Core -sovelluksessa
  • Kuinka käyttää MediatR: ää ASP.NET Core -sovelluksessa
  • Istunnon tilan käyttäminen ASP.NET Core -sovelluksessa
  • Kuinka Nancyä käytetään ASP.NET Core -sovelluksessa
  • Ymmärrä parametrien sitominen ASP.NET Web API: ssa
  • Tiedostojen lataaminen ASP.NET Core MVC: hen
  • Kuinka toteuttaa yleinen poikkeusten käsittely ASP.NET Core Web API: ssa
  • Terveystarkastusten toteuttaminen ASP.NET Core -sovelluksessa
  • Parhaat käytännöt välimuistiin tallentamisessa ASP.NET: ssä
  • Apache Kafka -viestien käyttäminen .NET-sovelluksessa
  • Kuinka CORS otetaan käyttöön Web-sovellusliittymässä
  • Milloin käyttää WebClientiä vs. HttpClient vs.HttpWebRequest
  • Kuinka työskennellä Redis-välimuistin kanssa .NET
  • Milloin Task.WaitAll vs. Task.WhenAll on .NET-verkossa
$config[zx-auto] not found$config[zx-overlay] not found