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

Вид: 57373|Ответ: 4

[Источник] ASP.NET Core (VI) DI вручную получает метод введения объектов

[Скопировать ссылку]
Опубликовано 2021-3-19 15:13:15 | | |
Обучающее руководство ASP.NET инъекции зависимостей ядра, инверсии управления (DI IOC):

ASP.NET Инъекция зависимостей ядра использует контейнер IOC, который идёт в комплекте
https://www.itsvse.com/thread-7562-1-1.html


Обзор:

ASP.NET Core (пять) основана на распределённых транзакциях с CAP
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Фильтр Core(4) унифицированная валидация модели ModelState
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Ядро (iii) Динамическое создание экземпляров с помощью ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Перезапустить приложение по коду
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) использует кэширование Redis
https://www.itsvse.com/thread-9393-1-1.html
Ввод зависимостей в двух словах:

Инъекция зависимостей (DI) — это техника, реализующая слабую связь между объектом и его партнёрами или зависимостями. Предоставьте эти объекты, которые класс использует для выполнения своих операций с классом, а не напрямую инстанцируя соавторов или использование статических ссылок.

ASP.NET Core DI обычно использует конструкторную инъекцию для получения объектов, например, после настройки инъекции ConfigureServices её можно получить следующим образом:


Что если вы вручную доберёте объект для инъекции?

Первый способ получить(Иногда не получается,Не рекомендуется):


Второй способ получитьРекомендуемое использование):

Примечание: следует отметить, что использование ServiceLocator.Instance.GetService<T>(); ,Можно получить только объекты, внедрённые AddTransient и AddSingleton, и не может получить внедрённый объект AddScoped (уникальный в жизненном цикле запроса) не потому, что его невозможно получить, а потому что приобретённый объект не получается конструктором, то есть приобретённый объект не является общим, и сценарий использования таков, как IUnitOfWork.

Итак, как вручную получить объекты инъекций в течение жизненного цикла запроса? Вот как:


или

Интерфейс IHttpContextAccessor находится в пакете Microsoft.AspNetCore.Http.AbstractionsNuget.




Предыдущий:HttpClient POST напрямую для отправки запросов на сжатие байтовых байтов (gzip)
Следующий:Разница между компилятором Roslyn MSBuild
Опубликовано 22.09.2021 20:43:14 |
Научись учиться...
Опубликовано 22.09.2021 20:55:17 |
Научись учиться...
Опубликовано 17.06.2022 16:05:39 |
Научитесь им пользоваться
 Хозяин| Опубликовано 2024-12-30 17:09:09 |
Консоль внедряет интерфейс IHttpContextAccessor:



Консольные сервисы .NET/C# регистрируются при обнаружении сервисов Consul
https://www.itsvse.com/thread-10899-1-1.html
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com