Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 2964|Відповідь: 0

[Джерело] ASP.NET Core (двадцять п'ять) залежностей впроваджують ліниву ліниву ініціалізацію

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

Огляд:

Як Lazy у C# зберігає теми в безпеці
https://www.itsvse.com/thread-10621-1-1.html

Оптимізація продуктивності C#: Лінивий ініціалізує лінивий із <T>затримкою
https://www.itsvse.com/thread-7700-1-1.html
Ін'єкція безпосередньо в інтерфейс

Конструктор вводиться безпосередньо в інтерфейсний сервіс, і код виглядає так:

Порядок виконання такий:



Ви можете побачити наступний порядок виконання: клас реалізації IA -> консоль HomeController -> індексний метод

Ініціалізація за допомогою Lazy delay

Якщо конструктор контролера змінює IA на Lazy<IA>, помилка виглядатиме так:

InvalidOperationException: Unable to resolve service for type 'System.Lazy`1[WebApplication6.IA]' while attempting to activate 'WebApplication6.Controllers.HomeController'.
Помилка пов'язана з тим, що ми не зареєструвалися для послуг, пов'язаних із Lazy, нам потрібно зареєструвати Lazy<> загальний сервіс, код якого виглядає так:

Додати до сервісу:

Порядок виконання такий:



Ви можете побачити порядок виконання: консоль HomeController -> метод індексу -> клас реалізації IA, ви можете побачити йогоІніціалізація затримки інтерфейсу IAстворює об'єкт реалізації IA при виклику.

(Кінець)





Попередній:CIDR: Прочитайте опис адреси CIDR в одній статті
Наступний:Фронтенд зберігає пакет localForage від IndexedDB
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com