Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 413|Răspunde: 0

[Bacșișuri] .NET/C# serviciu de înregistrare a serviciului de injecție de dependențe Scrutor

[Copiază linkul]
Postat la 2025-9-4 09:37:00 | | |
Cerințe: Când proiectul este relativ mare și sintaxa de scriere este foarte standardizată, când adăugăm o interfață, trebuie să o adăugăm manual în containerul IServiceCollection, astfel încât interfața să poată fi injectată în constructor. Instrumentul Scrutor este foarte convenabil pentru noi pentru a adăuga automat conform configurației noastre de reguli.

Scrutor

Microsoft.Extensions.DependencyInjection pentru scanarea asamblării și decorarea extensiilor.

Adresa codului sursă:Autentificarea cu hyperlink este vizibilă.

recenzie

Privind înapoi la înregistrarea serviciului, cele trei moduri de injecție singleton sunt următoarele:

Înregistrarea serviciului

Să presupunem că ai o structură de cod de acest fel:

Definiții ale interfeței
interfaze publica IUserService { }
public interface IOrderService { }

Clasa de implementare
clasa publică UserService : IUserService { }
clasa publică OrderService : IOrderService { }

înainte

Înregistrarea este obligatorie pe rând, iar codul este următorul:

Sau scrie-ți propria metodă și înregistrează-o prin reflecție (De fapt, Scrutor este și prin reflecție), după cum urmează:

după aceea

Scrutor face foarte convenabilă scanarea asamblărilor de înregistrare, în special pentru înregistrarea automată a mai multor clase de servicii (de exemplu, UserService înregistrat ca IUserService). Dependențele pachetelor sunt următoarele:

Codul este următorul:

Interpretare:
  • . <UserService>FromAssemblyOf(): Specifică asamblarea de scanat.
  • . AddClasses(): Scanează toate clasele din setul de asamblare.
  • . AsImplementedInterfaces(): Înregistrează automat interfețele pentru aceste clase pe măsură ce sunt implementate.
  • . WithScopedLifetime(): Setează durata de viață la Scoped, care poate fi și WithTransientLifetime() sau WithSingletonLifetime().

(Sfârșit)




Precedent:.NET/C# convertește PDF-uri în imagini bazate pe ImageMagick, GhostScript
Următor:Alibaba Cloud montează OSS în directorul sistemului Linux
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com