Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 21356|Svar: 1

[Kilde] IoC-effektiv Autofac

[Kopier link]
Opslået på 13/09/2016 13.14.12 | | |
IoC ~ Efficient Autofac

Der er ingen tvivl om, at Microsofts foretrukne IoC-container ikke er spring.net, Unity, men Autofac, på grund af dens effektivitet og enkelhed, så den bruges også til Microsoft-ledede frugtplantageprojekter

illustrerer brugen af en Autofac.


Lad os kalde det nu:

I næste forelæsning vil jeg tale om brugen af Autofac i specifikke projekter til frugtplantageprojekter.

Se nu på dens livscyklus

1、InstancePerDependency

Opret en ny unik instans for hver afhængighed eller kald. Dette er også standardmetoden til at oprette instanser på.

Officiel dokumentation forklarer: Konfigurér komponenten, så hver afhængig komponent eller kald til Resolve() får en ny, unik instans (standard).

2、InstancePerLifetimeScope

I et livscyklusdomæne skaber hver afhængighed eller kald en enkelt delt instans, og for hvert forskelligt livscyklusdomæne er instansen unik og ikke delt.

Officiel dokumentation forklarer: Konfigurér komponenten, så hver afhængig komponent eller kald til Resolve() inden for en enkelt ILifetimeScope får den samme, delte instans. Afhængige komponenter i forskellige levetidsscopes vil få forskellige instanser.

3、InstancePerMatchingLifetimeScope

I et identificeret livscyklusdomæne skaber hver afhængighed eller kald en enkelt delt instans. Instanser i forældredomænet kan deles i børneidentitetsdomænet for det identificerede livscyklusdomæne. Hvis der ikke findes noget identificeret livscyklusdomæne i hele arvehierarkiet, kastes en undtagelse: DependencyResolutionException.

Officiel dokumentation forklarer: Konfigurér komponenten, så hver afhængig komponent eller kald til Resolve() inden for en ILifetimeScope, der er tagget med en af de angivne tags, får den samme, delte instans. Afhængige komponenter i livstidsscopes, som er børn af det taggede scope, vil dele forældreinstansen. Hvis der ikke findes et passende tagget scope i hierarkiet, kastes en DependencyResolutionException.

4、InstancePerOwned

I livscyklussen for en instans, der oprettes af en instans ejet i et livscyklusdomæne, opretter hver afhængig komponent eller kald til Resolve()-metoden en enkelt delt instans, og det underordnede livscyklusdomæne deler instanserne i forældrelivscyklusdomænet. Hvis der ikke findes et passende livscyklusdomæne med børneinstanser i arvehierarkiet, kastes en undtagelse: DependencyResolutionException.

Den officielle dokumentation forklarer:

Konfigurér komponenten, så hver afhængig komponent eller kald til Resolve() inden for et ILifetimeScope oprettet af en ejet instans får den samme, delte instans. Afhængige komponenter i livstidsscopes, som er børn af den ejede instans, vil dele forælderens instans. Hvis der ikke findes et passende ejet instans-scope i hierarkiet, kastes en DependencyResolutionException.

5、SingleInstance

Hver gang du er afhængig af en komponent eller kalder Resolve()-metoden, får du den samme delte instans. Faktisk er det en singleton-model.

Officiel dokumentation forklarer: Konfigurér komponenten, så hver afhængig komponent eller kald til Resolve() får den samme, delte instans.

6、InstancePerHttpRequest

I forbindelse med en HTTP-anmodning deles en instans af en komponent. Kun tilgængelig for asp.net MVC-udvikling.





Tidligere:MVC's ActionResult
Næste:ConcurrentDictionary vs. Dictionary+Locking - Dennis Gao
 Udlejer| Opslået på 13/09/2016 13.15.50 |
Nuget-installationsmetode:

Installer Autofac

Install-Package Autofac
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com