Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 57373|Odpowiedź: 4

[Źródło] ASP.NET Core (VI) DI ręcznie uzyskuje metodę wstrzykiwania obiektów

[Skopiuj link]
Opublikowano 2021-3-19 15:13:15 | | |
Poradnik dotyczący wstrzyknięcia zależności rdzenia ASP.NET, odwrócenia kontroli (DI IOC):

ASP.NET Core dependency injection wykorzystuje dołączony kontener IOC
https://www.itsvse.com/thread-7562-1-1.html


Recenzja:

ASP.NET Core (pięć) opiera się na rozproszonych transakcjach CAP
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Filtr Core(4) zunifikowany walidacja modelu modelu ModelState
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Rdzeń (iii) Dynamicznie twórz instancje za pomocą ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Rdzeń (2) Restart aplikacji za pomocą kodu
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) korzysta z buforowania Redis
https://www.itsvse.com/thread-9393-1-1.html
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.




Poprzedni:HttpClient POST bezpośrednio do wysyłania żądań kompresji bajtów bajtów (gzip)
Następny:Różnica między kompilatorem Roslyn MSBuild
Opublikowano 2021-9-22 20:43:14 |
Naucz się uczyć...
Opublikowano 2021-9-22 20:55:17 |
Naucz się uczyć...
Opublikowano 2022-6-17 16:05:39 |
Naucz się go używać
 Ziemianin| Opublikowano 30.12.2024 17:09:09 |
Konsola wprowadza interfejs IHttpContextAccessor:



Usługi konsolowe .NET/C# są zarejestrowane w wykrywaniu usług Consul
https://www.itsvse.com/thread-10899-1-1.html
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com