Tutorial on ASP.NET Core Dependency Injection, Control Inversion (DI IOC):
Szemle:
A függőség injekciója röviden:
A függőségi injekció (DI) egy olyan technika, amely laza kapcsolódást valósít meg egy objektum és annak együttműködői vagy függőségei között. Biztosítsd ezeket az objektumokat, amelyeket az osztály a műveletek végrehajtásához használ, valamilyen módon az osztálynak, ahelyett, hogy közvetlenül létrehoznánk a munkatársakat vagy statikus hivatkozásokat használnánk.
ASP.NET A Core DI általában konstruktor injekciót használ objektumok megszerzésére, például a ConfigureServices injekció konfigurálása után az alábbi módokon érhető el:
Mi van, ha kézzel veszed be az injekciós tárgyat?
Az első módja annak, hogy megszerezzük(Néha nem lehet megszerezni,Nem ajánlott):
A második módja annak, hogy megszerezzük(Ajánlott felhasználás):
Megjegyzés: Fontos megjegyezni, hogy a ServiceLocator.Instance.GetService<T>() használatával; ,Csak az AddTransient és AddSingleton által injektált objektumok lehet beszerezni, és nem tudja megszerezni az AddScoped által befecskendezett objektumot (amely egyedi a kérés életciklusában), nem azért, mert nem lehet elérni, hanem mert a megszerzett objektumot nem a konstruktor szerezi meg, vagyis a megszerzett objektumot nem osztják meg, és a használati forgatókönyv olyan, mint az IUnitOfWork.
Hogyan lehet kézzel megszerezni az injekciós objektumokat a kérés életciklusa alatt? Íme, hogyan:
vagy
Az IHttpContextAccessor felület a Microsoft.AspNetCore.Http.AbstractionsNuget csomag alatt található.
|