Životnost služeb

Dokončeno

Při registraci služby musíte zvolit dobu života, která odpovídá způsobu použití služby v aplikaci. Doba života ovlivňuje chování služby při vkládání do komponent. Zatím jste pomocí této metody zaregistrovali služby AddSingleton . Tato metoda zaregistruje službu s jednou životností. Pro služby v ASP.NET Core existují tři předdefinované životnosti:

  • Singleton
  • Rozsahem
  • Prchavý

Životnost singletonu

Služby zaregistrované s jednou životností se vytvoří jednou po spuštění aplikace a po celou dobu života aplikace se znovu použijí. Tato životnost je užitečná pro služby, které jsou nákladné k vytvoření nebo se často nemění. Například služba, která čte nastavení konfigurace ze souboru, může být registrována jako jednoúčelový.

Tuto metodu AddSingleton použijte k přidání jednoúčelové služby do kontejneru služby.

Doba života s vymezeným oborem

Služby zaregistrované s vymezenou životností se vytvoří jednou za nakonfigurovaný obor, který ASP.NET Core nastaví pro každý požadavek. Vymezená služba v ASP.NET Core se obvykle vytvoří při přijetí a odstranění požadavku po dokončení požadavku. Tato životnost je užitečná pro služby, které přistupuje k datům specifickým pro požadavky. Například službu, která načítá data zákazníka z databáze, je možné zaregistrovat jako službu s vymezeným oborem.

Tuto metodu AddScoped použijte k přidání vymezené služby do kontejneru služby.

Přechodná životnost

Služby zaregistrované v přechodné době života se vytvoří při každém vyžádání. Tato životnost je užitečná pro jednoduché bezstavové služby. Například služba, která provádí specializovaný výpočet, může být zaregistrována jako přechodná služba.

Tuto metodu AddTransient použijte k přidání přechodné služby do kontejneru služby.

Služby, které závisí na jiných službách

Služba může záviset na jiných službách, obvykle tím, že má své závislosti vložené prostřednictvím svého konstruktoru. Když zaregistrujete službu, která závisí na jiné službě, musíte vzít v úvahu životnost služby. Například jednoúčelové služby by neměly záviset na službě s vymezeným oborem, protože vymezená služba je uvolněna, když se požadavek dokončí, ale po celou dobu životnosti aplikace existuje jedna hodnota. Naštěstí ASP.NET Core ve výchozím nastavení zkontroluje tuto chybnou konfiguraci a při spuštění aplikace oznámí chybu ověření oboru, aby bylo možné problém rychle identifikovat a vyřešit.