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

Vista: 21356|Risposta: 1

[Fonte] Autofac efficiente per l'IoC

[Copiato link]
Pubblicato su 13/09/2016 13:14:12 | | |
IoC ~ Autofac efficiente

Non c'è dubbio che il container IoC preferito di Microsoft non sia spring.net, Unity ma Autofac, per la sua efficienza, per la sua semplicità, quindi viene utilizzato anche per progetti di frutteti guidati da Microsoft

illustra l'uso di un Autofac.


Chiamiamolo ora:

Nella prossima lezione parlerò dell'uso di Autofac in progetti specifici per i progetti di frutteti.

Ora guarda il suo ciclo di vita

1、IstanzaPerDipendenza.

Crea una nuova istanza unica per ogni dipendenza o chiamata. Questo è anche il modo predefinito per creare istanze.

La documentazione ufficiale spiega: Configura il componente in modo che ogni componente dipendente o chiamata a Resolve() riceva una nuova istanza unica (predefinita).

2、InstancePerLifetimeScope

In un dominio del ciclo di vita, ogni dipendenza o chiamata crea un'unica istanza condivisa e, per ogni diverso dominio del ciclo di vita, l'istanza è unica e non condivisa.

La documentazione ufficiale spiega: Configura il componente in modo che ogni componente dipendente o chiamata a Resolve() all'interno di un singolo ILifetimeScope riceva la stessa istanza condivisa. I componenti dipendenti in diversi ambiti di vita avranno istanze differenti.

3、InstancePerMatchingLifetimeScope

In un dominio di ciclo di vita identificato, ogni dipendenza o chiamata crea un'unica istanza condivisa. Le istanze nel dominio genitore possono essere condivise nel dominio identità figlio del dominio del ciclo di vita identificato. Se non si trova alcun dominio del ciclo di vita identificato nell'intera gerarchia dell'ereditarietà, viene lanciata un'eccezione: DependencyResolutionException.

La documentazione ufficiale spiega: Configura il componente in modo che ogni componente dipendente o chiamata a Resolve() all'interno di un ILifetimeScope taggato con uno qualsiasi valore del tag fornito riceva la stessa istanza condivisa. I componenti dipendenti negli ambiti a vita che sono figli dell'ambito taggato condivideranno l'istanza del genitore. Se non si trova alcun ambito adeguatamente taggato nella gerarchia, viene lanciata un'eccezione DependencyResolution.

4、InstancePerOwned

Nel ciclo di vita di un'istanza creata da un'istanza posseduta in un dominio del ciclo di vita, ogni componente dipendente o chiamata al metodo Resolve() crea un'unica istanza condivisa, e il dominio del ciclo di vita figlio condivide le istanze nel dominio del ciclo di vita genitore. Se non si trova un dominio di ciclo di vita adatto con istanze figlie nella gerarchia di ereditarietà, viene lanciata un'eccezione: DependencyResolutionException.

La documentazione ufficiale spiega:

Configura il componente in modo che ogni componente dipendente o chiamata a Resolve() all'interno di un ILifetimeScope creato da un'istanza di proprietà riceva la stessa istanza condivisa. I componenti dipendenti negli ambiti a vita che sono figli dell'ambito di istanza posseduta condivideranno l'istanza del genitore. Se non si trova un appropriato scope di istanza posseduto nella gerarchia, viene lanciata una DependencyResolutionException.

5、SingoIstanza

Ogni volta che ti affidi a un componente o chiami il metodo Resolve(), ottieni la stessa istanza condivisa. In realtà, è un modello singleton.

La documentazione ufficiale spiega: Configura il componente in modo che ogni componente dipendente o chiamata a Resolve() riceva la stessa istanza condivisa.

6、InstancePerHttpRequest

Nel contesto di una richiesta Http, condividi un'istanza di un componente. Disponibile solo per asp.net sviluppo MVC.





Precedente:ActionResult del MVC
Prossimo:Dizionario Concorrente vs. Dizionario + Bloccaggio - Dennis Gao
 Padrone di casa| Pubblicato su 13/09/2016 13:15:50 |
Metodo di installazione nuget:

Installa Autofac

Autofac di installazione del pacchetto
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