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

Изглед: 57373|Отговор: 4

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

[Копирай линк]
Публикувано на 2021-3-19 15:13:15 | | |
Урок за ASP.NET Core Dependency Injection, Control Inversion (DI IOC):

ASP.NET Core dependency injection използва 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 Ядро (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 |
Научи се да учиш...
Публикувано на 2021-9-22 20:55:17 |
Научи се да учиш...
Публикувано на 2022-6-17 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