Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 413|Risposta: 0

[Consigli] Strumento di registrazione del servizio di iniezione dipendenza .NET/C#

[Copiato link]
Pubblicato il 4-09-2025 09:37:00 | | |
Requisiti: Quando il progetto è relativamente grande e la sintassi di scrittura è molto standardizzata, quando aggiungiamo un'interfaccia, dobbiamo inserirla manualmente nel contenitore IServiceCollection, così che l'interfaccia possa essere iniettata nel costruttore. Lo strumento Scrutor è molto comodo per noi da aggiungere automaticamente in base alla configurazione delle regole.

Scrutor

Microsoft.Extensions.DependencyInjection per la scansione e decorazione delle estensioni assembly.

Indirizzo del codice sorgente:Il login del link ipertestuale è visibile.

recensione

Guardando indietro alla registrazione del servizio, i tre modi di iniezione singleton sono i seguenti:

Registrazione del servizio

Supponiamo che tu abbia una struttura di codice come questa:

Definizioni di interfaccia
interface public IUserService { }
public interface IOrderService { }

Classe di implementazione
classe pubblica UserService : IUserService { }
classe pubblica OrderService : IOrderService { }

prima

La registrazione è richiesta una per una, e il codice è il seguente:

Oppure scrivi il tuo metodo e registralo attraverso la riflessione (In effetti, Scrutor è anche attraverso la riflessione), come segue:

dopo

Scrutor rende molto comodo registrare la scansione degli assiewi, specialmente per la registrazione automatica di più classi di servizio (ad esempio, UserService registrato come IUserService). Le dipendenze dal pacchetto sono le seguenti:

Il codice è il seguente:

Interpretazione:
  • . <UserService>FromAssemblyOf(): Specifica l'assemblaggio da scansionare.
  • . AddClass(): Scansiona tutte le classi nell'assembly set.
  • . AsImplementedInterfaces(): Registra automaticamente le interfacce per queste classi man mano che vengono implementate.
  • . WithScopedLifetime(): Imposta la vita su Scoped, che può anche essere WithTransientLifetime() o WithSingletonLifetime().

(Fine)




Precedente:.NET/C# converte PDF in immagini basate su ImageMagick, GhostScript
Prossimo:Alibaba Cloud monta OSS nella directory di sistema Linux
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com