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

Вид: 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 Ядро (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
Опубліковано 2021-9-22 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 Service Discovery
https://www.itsvse.com/thread-10899-1-1.html
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com