Programovanie

Ako používať vzor možností v ASP.NET Core

Pri práci v ASP.NET Core často zadáte nastavenia svojej aplikácie, uložíte ich do nejakého súboru a potom ich načítate, keď to aplikácia vyžaduje. Spravidla by ste svoje závislosti zaregistrovali v metóde ConfigureServices triedy Startup. Nastavenia svojej aplikácie môžete určiť v súbore appsettings.json alebo v inom súbore .json a potom využiť načítanie závislostí prostredníctvom IOptions na prečítanie týchto nastavení vo vašej aplikácii.

Vzory možností poskytujú elegantný spôsob, ako pridať silne zadané nastavenia do vašej aplikácie ASP.NET Core. Vzor možností, ktorý je rozšírením nad rozhraním IServiceCollection, využíva triedy na predstavenie skupiny súvisiacich nastavení. Tento článok hovorí o vzore možností, prečo je to užitočné a ako sa dá použiť na prácu s konfiguračnými údajmi v ASP.NET Core.

Ak chcete pracovať s príkladmi kódu uvedenými v tomto článku, mali by ste mať vo svojom systéme nainštalovanú aplikáciu Visual Studio 2019. Ak ešte nemáte kópiu, môžete si tu stiahnuť Visual Studio 2019.

Vytvorte projekt rozhrania ASP.NET Core API

Najprv si vytvoríme projekt ASP.NET Core v Visual Studio. Za predpokladu, že je vo vašom systéme nainštalované Visual Studio 2019, vytvorte nový projekt ASP.NET Core API v Visual Studio podľa krokov uvedených nižšie.

  1. Spustite Visual Studio IDE.
  2. Kliknite na „Vytvoriť nový projekt“.
  3. V okne „Vytvoriť nový projekt“ vyberte zo zobrazeného zoznamu šablón „Webová aplikácia ASP.NET Core“.
  4. Kliknite na Ďalej.
  5. V nasledujúcom okne „Konfigurácia nového projektu“ zadajte názov a umiestnenie nového projektu.
  6. Kliknite na tlačidlo Vytvoriť.
  7. V okne „Vytvoriť novú webovú aplikáciu ASP.NET Core“ vyberte z rozbaľovacieho zoznamu hore .NET Core ako runtime a ASP.NET Core 3.0 (alebo novší). Budem tu používať ASP.NET Core 3.1.
  8. Vyberte „API“ ako šablónu projektu a vytvorte novú aplikáciu API ASP.NET Core.
  9. Skontrolujte, či nie sú začiarknuté políčka „Povoliť podporu Docker“ a „Konfigurovať pre HTTPS“, pretože tu nebudeme tieto funkcie používať.
  10. Skontrolujte, či je overenie nastavené na „Bez overenia“, pretože tiež nebudeme používať overenie.
  11. Kliknite na tlačidlo Vytvoriť.

Týmto sa vytvorí nový projekt rozhrania ASP.NET Core API v Visual Studio. Vyberte priečinok Riešenie ovládačov v okne Prieskumníka riešení a kliknutím na „Pridať -> Ovládač ...“ vytvorte nový ovládač s názvom DefaultController. Tento projekt použijeme v ďalších častiach tohto článku.

Implementujte vzor možností v ASP.NET Core

Ak chcete použiť vzor možností v ASP.NET Core, potrebujete balík Microsoft.Extensions.Options.ConfigurationExtensions. Mimochodom, aplikácie ASP.NET Core implicitne štandardne odkazujú na balík Microsoft.Extensions.Options.ConfigurationExtensions.

Pri použití vzoru možností by ste zvyčajne chceli použiť triedy na predstavenie skupiny súvisiacich nastavení. Pri izolovaní nastavení konfigurácie do samostatných tried vaša aplikácia dodržiava nasledujúce zásady:

  • Rozdelenie obáv: Nastavenia použité v rôznych moduloch aplikácie sú navzájom oddelené.
  • Princíp segregácie rozhrania: Triedy, ktoré predstavujú tieto nastavenia, závisia iba od konfiguračných nastavení, ktoré by používali.

Teraz zapíšte nasledujúce nastavenia do súboru appsettings.json.

"DatabaseSettings": {

"Server": "localhost",

"Provider": "SQL Server",

"Database": "DemoDb",

„Port“: 23,

"UserName": "sa",

„Heslo“: „Joydip123“

  }

Upozorňujeme, že vaša konfiguračná trieda by mala mať verejné vlastnosti get a set. Nasledujúcu triedu využijeme na to, aby sme si tieto nastavenia čoskoro prečítali.

 verejná trieda DatabaseSettings

    {

public string Server {get; sada; }

public string Provider {get; sada; }

verejný reťazec Databáza {get; sada; }

public int Port {get; sada; }

verejný reťazec UserName {get; sada; }

verejný reťazec Heslo {get; sada; }

    }

Teraz môžete použiť metódu rozšírenia Konfigurovať IServiceCollection na naviazanie triedy nastavení na svoju konfiguráciu, ako je uvedené v útržku kódu uvedenom nižšie.

public void ConfigureServices (služby IServiceCollection)

{

services.AddControllers ();

služby. Nakonfigurujte

(možnosti => Configuration.GetSection ("DatabaseSettings"). Viazať (možnosti));

}

Čítajte konfiguračné údaje v radiči v ASP.NET Core

Teraz využijeme výhodu nástroja DefaultController, ktorý sme vytvorili predtým, a ukážeme si, ako môžeme čítať konfiguračné údaje v ovládači. Rozhranie IOptions vystavuje vlastnosť Value, ktorú je možné použiť na načítanie inštancie triedy nastavení.

Nasledujúci úryvok kódu ukazuje, ako môžete vo svojom ovládači s názvom DefaultController používať triedu DatabaseSettings. Všimnite si, ako sa tu použilo vkladanie závislostí (v tomto príklade vkladanie konštruktora).

verejná trieda DefaultController: ControllerBase

{

private DatabaseSettings _settings;

public DefaultController (nastavenie IOptions)

   {

_settings = settings.Value;

   }

// Metódy akcie

}

Presadzujte pravidlá pre konfigurácie v ASP.NET Core

Môžete tiež vynútiť dodržiavanie určitých pravidiel, ako je uvedené v útržku kódu nižšie. Všimnite si, ako sa tu pridáva inštancia triedy pomocníka pre SQL Server alebo MySQL ako singleton.

služby. Nakonfigurujte (možnosti =>

 {

if (options.Provider.ToLower (). Trim (). Equals ("sqlserver"))

     {

services.AddSingleton (nový SqlDbHelper ());

     }

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

     {

services.AddSingleton (nový MySqlDbHelper ());

     }

 });

Podpora konfigurácie so silným typom je vynikajúcou funkciou v ASP.NET Core, ktorá vám umožňuje použiť oddelenie záujmov a princípy segregácie rozhraní. V budúcom príspevku tu o vzore možností budem hovoriť o overení konfigurácie a konfigurácii s možnosťou opätovného načítania so zvláštnym zameraním na rozhranie IOptionsMonitor. Do tej doby si môžete prečítať viac informácií o vzore možností v online dokumentácii spoločnosti Microsoft tu.

Ako urobiť viac v ASP.NET a ASP.NET Core:

  • Ako používať ukladanie do pamäte cache v ASP.NET Core
  • Ako spracovať chyby v webovom rozhraní API ASP.NET
  • Ako odovzdať viaceré parametre metódam radiča webového API
  • Ako prihlásiť metadáta požiadaviek a odpovedí do webového rozhrania ASP.NET Web API
  • Ako pracovať s HttpModules v ASP.NET
  • Pokročilé spravovanie verzií v webovom rozhraní API ASP.NET Core
  • Ako používať vkladanie závislostí v ASP.NET Core
  • Ako pracovať s reláciami v ASP.NET
  • Ako pracovať s HTTPHandlers v ASP.NET
  • Ako používať IHostedService v ASP.NET Core
  • Ako spotrebovať službu WCF SOAP v ASP.NET Core
  • Ako zlepšiť výkon aplikácií ASP.NET Core
  • Ako konzumovať webové rozhranie API ASP.NET Core pomocou nástroja RestSharp
  • Ako pracovať s prihlásením do ASP.NET Core
  • Ako používať MediatR v ASP.NET Core
  • Ako pracovať so stavom relácie v ASP.NET Core
  • Ako používať Nancy v ASP.NET Core
  • Pochopte väzbu parametrov vo webovom rozhraní API ASP.NET
  • Ako nahrávať súbory v ASP.NET Core MVC
  • Ako implementovať globálne spracovanie výnimiek v webovom rozhraní API ASP.NET Core
  • Ako implementovať kontroly stavu v ASP.NET Core
  • Najlepšie postupy pri ukladaní do pamäte cache v ASP.NET
  • Ako používať zasielanie správ Apache Kafka v .NET
  • Ako povoliť CORS vo vašom webovom rozhraní API
  • Kedy použiť WebClient vs. HttpClient vs. HttpWebRequest
  • Ako pracovať s Redis Cache v .NET
  • Kedy použiť Task.WaitAll vs. Task.WhenAll v .NET
$config[zx-auto] not found$config[zx-overlay] not found