Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 20690|Odpoveď: 1

[Zdroj] Zhrnutie metodológie vytvárania inštancií autofac

[Kopírovať odkaz]
Zverejnené 5. 1. 2018 21:25:48 | | |

1、InstancePerDependency

Vytvorte novú jedinečnú inštanciu pre každú závislosť alebo volanie. Toto je tiež predvolený spôsob vytvárania inštancií.

Oficiálna dokumentácia vysvetľuje: Nakonfigurujte komponent tak, aby každý závislý komponent alebo volanie Resolve() dostalo novú, jedinečnú inštanciu (predvolené).



2、PrípadPerLifetimeScope

V doméne životného cyklu každá závislosť alebo volanie vytvára jednu zdieľanú inštanciu a pre každú inú doménu životného cyklu je inštancia jedinečná a nie je zdieľaná.

Oficiálna dokumentácia vysvetľuje: Nakonfigurujte komponent tak, aby každá závislá komponenta alebo volanie Resolve() v rámci jedného ILifetimeScope dostalo rovnakú zdieľanú inštanciu. Závislé komponenty v rôznych životnostných rozsahoch dostanú rôzne inštancie.



3、PrípadZodpovedanieŽivotného rozsahu

V identifikovanej doméne životného cyklu každá závislosť alebo volanie vytvára jednu zdieľanú inštanciu. Inštancie v rodičovskej doméne môžu byť zdieľané v podriadenej identitnej doméne identifikovanej domény životného cyklu. Ak sa v celej hierarchii dedičnosti nenájde žiadna identifikovaná doména životného cyklu, vyhodí sa výnimka: DependencyResolutionException.

Oficiálna dokumentácia vysvetľuje: Nakonfigurujte komponent tak, aby každý závislý komponent alebo volanie Resolve() v rámci ILifetimeScope označeného ktoroukoľvek z daných hodnôt tagov dostalo rovnakú zdieľanú inštanciu. Závislé komponenty v celoživotných rozsahoch, ktoré sú potomkami označeného rozsahu, budú zdieľať inštanciu rodiča. Ak sa v hierarchii nenájde vhodný označený rozsah, vyhodí sa DependencyResolutionException.



4、InstancePerOwned

V životnom cykle inštancie vytvorenej inštanciou vlastnenou v doméne životného cyklu každá závislá komponenta alebo volanie metódy Resolve() vytvára jednu spoločnú inštanciu a doména životného cyklu dieťaťa zdieľa inštancie v doméne rodičovského životného cyklu. Ak sa v hierarchii dedičnosti nenájde vhodná doména životného cyklu s podinštanciami, vyhodí sa výnimka: DependencyResolutionException.

Oficiálna dokumentácia vysvetľuje: Nakonfigurujte komponent tak, aby každý závislý komponent alebo volanie Resolve() v rámci ILifetimeScope vytvoreného vlastnenou inštanciou dostalo rovnakú zdieľanú inštanciu. Závislé komponenty v celoživotných rozsahoch, ktoré sú potomkami vlastneného rozsahu inštancie, budú zdieľať inštanciu rodiča. Ak sa v hierarchii nenájde vhodný rozsah vlastnej inštancie, vyhodí sa DependencyResolutionException.



5、SingleInstance

Vždy, keď sa spoliehate na komponent alebo voláte metódu Resolve(), dostanete rovnakú zdieľanú inštanciu. V skutočnosti ide o model s jedným procesorom.

Oficiálna dokumentácia vysvetľuje: Nakonfigurujte komponent tak, aby každý závislý komponent alebo volanie Resolve() dostalo rovnakú zdieľanú inštanciu.



6、InstancePerHttpRequest



V kontexte HTTP požiadavky zdieľajte inštanciu komponentu. Dostupné len pre vývoj asp.net MVC.
Oficiálna dokumentácia vysvetľuje: Zdieľajte jednu inštanciu komponentu v kontexte jednej HTTP požiadavky.
Oficiálny odkaz na dokumentáciu: http://autofaccn.readthedocs.io/en/latest/lifetime/instance-scope.html




Predchádzajúci:asp.net Súbor adresára stránky je prázdny
Budúci:Výmena jadra vo Firefoxe GeckoFx, vypnutie varovania o systémovom vyskakovacom okne
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com