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

Вид: 80854|Відповідь: 10

[.NET Core] ASP.NET Core використовує Autofac для реалізації перехоплення AOP

[Копіювати посилання]
Опубліковано 08.05.2019 15:09:15 | | | |
ASP.NET Ін'єкція залежностей ядра використовує контейнер IOC, що йде в комплекті
https://www.itsvse.com/thread-7562-1-1.html
(Джерело: Architect_Programmer)

ASP.NET Core використовує Autofac для реалізації ін'єкції IOC
https://www.itsvse.com/thread-7563-1-1.html
(Джерело: Architect_Programmer)

ASP.NET Core використовує Autofac для реалізації перехоплення AOP
https://www.itsvse.com/thread-7566-1-1.html
(Джерело: Architect_Programmer)

У цій статті детально пояснюється використання заміненого Autofac для реалізації AOP Interception у ASP.NET Core.

Аспектно-орієнтоване програмування (AOP) — це дуже актуальна тема. Основна мета AOP — вилучити поверхню з розрізом у процесі бізнес-обробки, який проходить певний етап або етап процесу, щоб отримати ізоляційний ефект низького зв'язку між частинами логічного процесу.

Введення бібліотек класів

Команда nuget виглядає так:


Autofac використовується для реалізації AOP

Спочатку створюємо клас перехоплення з таким кодом:

Тут потрібно успадкувати IInterceptor і потім реалізувати його метод Intercept: Ми безпосередньо виводимо перехоплений контент у вікно налагодження (офіційний проєкт: Будь ласка, здійснюйте перехоплення відповідно до бізнесу):

Тут я використовую ILogger для запису операції, наступним чином:

ASP.NET Навчальний посібник з використання журналу Core ILogger
https://www.itsvse.com/thread-7565-1-1.html
(Джерело: Architect_Programmer)

Знайдіть сервіси, які ми хочемо перехопити — TestService1 і TestService2, і ми робимо це двома способами.

TestService1: Перехоплено функцією
TestService2: Перехоплення за конфігурацією

Код виглядає так:

У методі редагування при запуску ConfigureServices заблокуйте сервіс TestService2, налаштувавши його наступним чином:

Важливий код виглядає так:

Зверніть увагу, що його потрібно додати після сервісу, який ви вводитеEnableInterfaceInterceptorsувімкнути перехоплення

Код контролера виглядає так:

Запустіть проєкт за допомогою команди dotnet run, отримайте доступ до URL, і журнал виводу консолі виглядає так:



Ми виявили, що значення повернення, перехоплене AOP, збігається з тим, що повертається на веб-сторінку, тому ми завершили перехоплення AOP за допомогою Autofac.

(Кінець)




Попередній:ASP.NET Навчальний посібник з використання журналу Core ILogger
Наступний:Практичний посібник Django Enterprise Development щодо ефективного вебфреймворку на Python Автор Ху Ян
Опубліковано 09.05.2019 08:18:56 |
Найкраще мати вихідний код інстансу
 Орендодавець| Опубліковано 09.05.2019 09:11:27 |
Літо Опубліковано 2019-5-9 08:18
Найкраще мати вихідний код інстансу

Проєкт містить конфіденційну інформацію, тому я її не надсилатиму, а туторіал уже дуже детальний
Опубліковано 09.05.2019 11:15:17 |
Опубліковано 14.05.2019 16:39:00 |
Навчився,
Опубліковано 22.11.2021 14:24:55 |
Вивчайте AOP
Опубліковано 17.12.2021 14:20:20 |
Дякую, що поділилися, давайте вчитися
Опубліковано 17.12.2021 14:21:41 |
Чи існує рамка для впровадження цього? Власник пише власний код? Що ще може бути якісною відповіддю...
Опубліковано 24.12.2021 16:23:00 |
Так добре писати, я дізнався
Опубліковано 10.01.2022 11:12:24 |
Вчитися вчитися
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com