Krav: I ASP.NET Core bruger vi normalt AddTransient, AddScope og AddSingleton til at registrere tjenester med forskellige livscyklusser alt efter vores egen forretning. Hvis projektet skal registrere 100 services (databaseadgangslag, almindelige objektnavngivningsregler), skal vi skrive 100 linjer kode til registrering, hvordan registrerer vi disse services dynamisk eller ved hjælp af reflection?
Gennem dynamisk refleksion behøver vi kun få linjer kode for at fuldføre, og når vi opretter en ny service (fordi den vil blive scannet for nye services, når den er dynamisk registreret), behøver vi ikke registrere den.
Princippet om dynamisk registreringstjeneste er at kalde builder. Tjenester.TilføjServiceDescriptormåde.
Vores databaseadgangslag, grænsefladenavn: IClassificationService, objektnavnet på implementeringsgrænsefladen: ClassificationService, databaseadgangslagets navn efterfølges af "Service", du kan registrere alle databaseadgangslagstjenester via denne regel, koden er som følger:
IClassificationService-interfacekode:
ClassificationService-kode:
(Slut)
|