Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 2964|Ответ: 0

[Источник] ASP.NET Ядра (двадцать пять) зависимостей вводят ленивые, ленивые, ленивые инициализации

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

Обзор:

Как Lazy в 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 на 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