Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 413|Odpowiedź: 0

[Napiwki] .NET/C# narzędzie rejestracji usług wstrzykiwania zależności Scrutor

[Skopiuj link]
Opublikowano 2025-9-4 09:37:00 | | |
Wymagania: Gdy projekt jest stosunkowo duży, a składnia zapisu bardzo ustandaryzowana, gdy dodajemy interfejs, musimy ręcznie dodać go do kontenera IServiceCollection, aby interfejs mógł być wtryskiwany do konstruktora. Narzędzie Scrutor jest dla nas bardzo wygodne, bo dodaje się automatycznie zgodnie z konfiguracją reguł.

Scrutor

Microsoft.Extensions.DependencyInjection do rozszerzenia do skanowania i dekorowania asemblera.

Adres kodu źródłowego:Logowanie do linku jest widoczne.

recenzja

Patrząc wstecz na rejestrację usługi, trzy sposoby iniekcji pojedynczych tonów są następujące:

Rejestracja służby

Załóżmy, że masz strukturę kodu taką:

Definicje interfejsów
public interface IUserService { }
public interface IOrderService { }

Klasa implementacji
public class UserService : IUserService { }
public class OrderService : IOrderService { }

przed

Rejestracja jest wymagana pojedynczo, a kod jest następujący:

Albo napisz własną metodę i rejestruj ją przez refleksję (W rzeczywistości Scrutor jest także refleksją), jak następuje:

potem

Scrutor bardzo ułatwia skanowanie rejestrów przez asemblery, zwłaszcza przy automatycznym rejestrowaniu wielu klas serwisowych (np. UserService zarejestrowany jako IUserService). Zależności pakietów są następujące:

Kod jest następujący:

Interpretacja:
  • . FromAssemblyOf<UserService>(): Określa asemble, który ma się skanować.
  • . AddClasses(): Skanuje wszystkie klasy w zbiorze asemblera.
  • . AsImplementedInterfaces(): Automatycznie rejestruje interfejsy dla tych klas w momencie ich implementacji.
  • . WithScopedLifetime(): Ustaw lifetime na Scoped, który może być także WithTransientLifetime() lub WithSingletonLifetime().

(Koniec)




Poprzedni:.NET/C# konwertuje pliki PDF na obrazy oparte na ImageMagick, GhostScript
Następny:Alibaba Cloud montuje OSS do katalogu systemowego Linuksa
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com