Poradnik dotyczący wstrzyknięcia zależności rdzenia ASP.NET, odwrócenia kontroli (DI IOC):
Recenzja:
Wstrzykiwanie zależności w skrócie:
Wstrzyknięcie zależności (DI) to technika implementująca luźne sprzężenie między obiektem a jego współpracownikami lub zależnościami. Zapewnij te obiekty, których klasa używa do wykonywania operacji wobec klasy w jakiś sposób, zamiast bezpośrednio instancjonować współpracowników lub używać statycznych odniesień.
ASP.NET Core DI zazwyczaj wykorzystuje wstrzykiwanie konstruktorów do uzyskania obiektów, na przykład po skonfigurowaniu wstrzyknięcia ConfigureServices, można je uzyskać na następujący sposób:
A co jeśli ręcznie zdobędziesz obiekt wstrzykiwania?
Pierwszy sposób, żeby go zdobyć(Czasem nie możesz tego zrozumieć,Nie polecam):
Drugi sposób, by go zdobyć(Zalecane zastosowanie):
Uwaga: Należy zauważyć, że używając ServiceLocator.Instance.GetService<T>(); ,Tylko obiekty wstrzykiwane przez AddTransient i AddSingleton mogą być pobierane, i nie może uzyskać wstrzykniętego obiektu AddScoped (unikalnego w cyklu życia żądania), nie dlatego, że nie może zostać uzyskany, ale dlatego, że nabyty obiekt nie jest pozyskany przez konstruktora, tzn. obiekt nabyty nie jest współdzielony, a scenariusz użycia jest taki jak IUnitOfWork.
Jak więc ręcznie zdobyć obiekty wstrzykiwania podczas cyklu życia żądań? Oto jak:
lub
Interfejs IHttpContextAccessor znajduje się w pakiecie Microsoft.AspNetCore.Http.AbstractionsNuget.
|