Tutoriál na ASP.NET injekci závislostí jádra, inverzi řízení (DI IOC):
Přezkoumání:
Závislostní injekce v kostce:
Injekce závislostí (DI) je technika, která implementuje volné propojení mezi objektem a jeho spolupracovníky nebo závislostmi. Poskytněte tyto objekty, které třída používá k provádění svých operací vůči třídě nějakým způsobem, místo přímého instancování spolupracovníků nebo používání statických referencí.
ASP.NET Core DI obvykle používá injekci konstruktorů k získání objektů, například po konfiguraci injekce ConfigureServices lze ji získat následujícími způsoby:
Co když ručně získáte injekční objekt?
První způsob, jak ho získat(Někdy to nemůžete pochopit,Nedoporučuje se):
Druhý způsob, jak ho získat(Doporučené použití):
Poznámka: Je třeba poznamenat, že pomocí ServiceLocator.Instance.GetService<T>(); ,Lze načíst pouze objekty injektované pomocí AddTransient a AddSingleton, a nemůže získat injektovaný objekt AddScoped (jedinečný v životním cyklu požadavku), ne proto, že by ho nemohl získat, ale protože získaný objekt není konstruktorem získán, tedy že není sdílen a scénář použití je podobný IUnitOfWork.
Jak tedy ručně získáš objekty pro injekci během životního cyklu požadavku? Zde je návod, jak na to:
nebo
Rozhraní IHttpContextAccessor je součástí balíčku Microsoft.AspNetCore.Http.AbstractionsNuget.
|