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

Widok: 2964|Odpowiedź: 0

[Źródło] ASP.NET Podstawowe (dwadzieścia pięć) zależności wstrzykują leniwą inicjalizację leniwą

[Skopiuj link]
Opublikowano 10.10.2023 21:14:31 | | | |
Wymagania: Dodaj usługi ASP.NET rdzenia, wstrzykuj usługi przez konstruktory i chcesz opóźnić inicjalizację klasy implementacyjnej (inne przetwarzanie logiczne w zależności od informacji o zażądaniu kontekstu HTTP), oraz pomyśl o użyciu Lazy zamiast leniwości<T> do inicjalizacji leniwej.

Recenzja:

Jak Lazy w C# chroni wątki
https://www.itsvse.com/thread-10621-1-1.html

Optymalizacja wydajności w C#: Lazy inicjuje lazy z <T>opóźnieniem
https://www.itsvse.com/thread-7700-1-1.html
Wstrzykuj bezpośrednio do interfejsu

Konstruktor jest bezpośrednio wtryskiwany do usługi interfejsu, a kod wygląda następująco:

Kolejność wykonania jest następująca:



Możesz zobaczyć następującą kolejność wykonywania: IA implementation class -> HomeController console -> index method method

Inicjalizacja z opóźnieniem Lazy

Jeśli konstruktor kontrolera zmieni IA na Lazy<IA>, błąd będzie wyglądał tak:

InvalidOperationException: Unable to resolve service for type 'System.Lazy`1[WebApplication6.IA]' while attempting to activate 'WebApplication6.Controllers.HomeController'.
Błąd wynika z faktu, że nie zarejestrowaliśmy się na usługi związane z Lazy, musimy zarejestrować usługę Lazy<> ogólną, a kod jest następujący:

Dodaj do usługi:

Kolejność wykonania jest następująca:



Możesz zobaczyć kolejność wykonywania: HomeController console -> Index method -> klasa implementacji IA, możesz ją zobaczyćInicjalizacja opóźnienia interfejsu IAinstancjonuje obiekt implementacyjny IA po wywołaniu.

(Koniec)





Poprzedni:CIDR: Przeczytaj opis adresu CIDR w jednym artykule
Następny:Front-end przechowuje lokalny pakiet Forage IndexedDB
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