Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 2964|Отговор: 0

[Източник] ASP.NET Основни (двадесет и пет) зависимости инжектират мързелива мързелива инициализация

[Копирай линк]
Публикувано в 10.10.2023 г. 21:14:31 ч. | | | |
Изисквания: Добавете услуги ASP.NET Core, инжектирайте услуги чрез конструктори и искате да забавите инициализацията на класа на имплементация (различна логическа обработка според информацията от HTTP контекстната заявка), и помислете за използване на<T> Lazy за lazy за мързелива инициализация.

Преглед:

Как Lazy in C# пази нишките в безопасност
https://www.itsvse.com/thread-10621-1-1.html

C# оптимизация на производителността: Lazy инициализира мързеливия с <T>забавяне
https://www.itsvse.com/thread-7700-1-1.html
Инжектиране директно в интерфейса

Конструкторът се инжектира директно в интерфейсната услуга, а кодът е както следва:

Редът на изпълнение е следният:



Можете да видите следния ред на изпълнение: IA клас на реализация -> конзола HomeController -> индекс метод

Инициализирайте с Lazy delay

Ако конструкторът на контролера промени IA на <IA>мързелив, грешката ще изглежда така:

InvalidOperationException: Unable to resolve service for type 'System.Lazy`1[WebApplication6.IA]' while attempting to activate 'WebApplication6.Controllers.HomeController'.
Грешката се дължи на факта, че не сме регистрирали за услуги, свързани с Lazy, трябва да регистрираме Lazy<> обща услуга, кодът е следният:

Добави към услугата:

Редът на изпълнение е следният:



Можете да видите реда на изпълнение: HomeController конзола -> Index метод -> клас на IA имплементация, можете да го видитеИнициализация на IA интерфейса със забавянеще инстанцира обекта за имплементация на IA при извикване.

(Край)





Предишен:CIDR: Прочетете описанието на адреса на CIDR в една статия
Следващ:Фронтендът съхранява пакета localForage на IndexedDB
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com