Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 413|Atbildi: 0

[Padomi] .NET/C# atkarības injekcijas pakalpojuma reģistrācija Scrutor rīks

[Kopēt saiti]
Publicēts 2025-9-4 09:37:00 | | |
Prasības: Ja projekts ir salīdzinoši liels un rakstīšanas sintakse ir ļoti standartizēta, pievienojot saskarni, mums tas manuāli jāpievieno IServiceCollection konteinerā, lai saskarni varētu ievadīt konstruktorā. Scrutor rīks ir ļoti ērts, lai to automātiski pievienotu saskaņā ar mūsu noteikumu konfigurāciju.

Skrutors

Microsoft.Extensions.DependencyInjection montāžas skenēšanai un dekorēšanai paplašinājumiem.

Avota koda adrese:Hipersaites pieteikšanās ir redzama.

Pārskats

Atskatoties uz pakalpojuma reģistrāciju, trīs vienreizējās injekcijas veidi ir šādi:

Pakalpojuma reģistrācija

Pieņemsim, ka jums ir šāda koda struktūra:

Interfeisa definīcijas
publiskais interfeiss IUserService { }
publiskais interfeiss IOrderService { }

Ieviešanas klase
publiskā klase UserService : IUserService { }
publiskā klase OrderService : IOrderService { }

pirms

Reģistrācija ir nepieciešama pa vienam, un kods ir šāds:

Vai arī uzrakstiet savu metodi un reģistrējiet to caur pārdomām (Patiesībā Scrutor ir arī caur pārdomām), šādā redakcijā:

pēc tam

Scrutor ļauj ļoti ērti reģistrēt montāžas skenēšanu, it īpaši, lai automātiski reģistrētu vairākas pakalpojumu klases (piemēram, UserService, kas reģistrēts kā IUserService). Paketes atkarības ir šādas:

Kods ir šāds:

Interpretācija:
  • . FromAssemblyOf<UserService>(): norāda skenējamo montāžu.
  • . AddClasses(): skenē visas montāžas kopas klases.
  • . AsImplementedInterfaces(): automātiski reģistrē šo klašu interfeisus, kad tie tiek ieviesti.
  • . WithScopedLifetime(): iestatiet kalpošanas laiku uz Scoped, kas var būt arī WithTransientLifetime() vai WithSingletonLifetime().

(Beigas)




Iepriekšējo:.NET/C# konvertē PDF failus uz attēliem, kuru pamatā ir ImageMagick, GhostScript
Nākamo:Alibaba Cloud uzstāda OSS Linux sistēmas direktorijā
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com