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

Вид: 413|Відповідь: 0

[Чайови] .NET/C# Інструмент реєстрації служби інжекції залежності Scrutor

[Копіювати посилання]
Опубліковано 2025-9-4 09:37:00 | | |
Вимоги: Коли проєкт досить великий і синтаксис написання дуже стандартизований, коли ми додаємо інтерфейс, потрібно вручну додавати його в контейнер IServiceCollection, щоб інтерфейс можна було ввести в конструктор. Інструмент Scrutor дуже зручний для автоматичного додавання відповідно до нашої конфігурації правил.

Scrutor

Microsoft.Extensions.DependencyInjection для розширень для сканування та декорування асемблерів.

Адреса вихідного коду:Вхід за гіперпосиланням видно.

огляд

Оглядаючись на реєстрацію сервісу, існує три способи ін'єкції синглтона:

Реєстрація служби

Припустимо, у вас є структура коду така:

Визначення інтерфейсів
public interface IUserService { }
public interface IOrderService { }

Клас реалізації
public class UserService : IUserService { }
public class OrderService : IOrderService { }

Перед

Реєстрація потрібна по одному, а код виглядає так:

Або напишіть власний метод і зареєструйте його через рефлексію (Насправді Скрутор також відбувається через рефлексію), а саме:

потім

Scrutor робить реєстрацію сканування асемблів дуже зручним, особливо для автоматичної реєстрації кількох класів сервісів (наприклад, UserService зареєстрований як IUserService). Залежності пакетів такі:

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

Інтерпретації:
  • . <UserService>FromAssemblyOf(): Визначає, яку збірку потрібно сканувати.
  • . AddClasses(): Сканує всі класи в асемблерному наборі.
  • . AsImplementedInterfaces(): Автоматично реєструє інтерфейси для цих класів під час їх реалізації.
  • . WithScopedLifetime(): Встановіть час життя на Scoped, що також може бути WithTransientLifetime() або WithSingletonLifetime().

(Кінець)




Попередній:.NET/C# конвертує PDF у зображення на основі ImageMagick, GhostScript
Наступний:Alibaba Cloud монтує OSS до системної директорії Linux
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com