Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 20690|Odpověď: 1

[Zdroj] Shrnutí metodologie tvorby instancí AutoFACu

[Kopírovat odkaz]
Zveřejněno 05.01.2018 21:25:48 | | |

1、InstancePerDependency

Vytvořte novou unikátní instanci pro každou závislost nebo volání. Toto je také výchozí způsob vytváření instancí.

Oficiální dokumentace vysvětluje: Nastavte komponentu tak, aby každá závislá komponenta nebo volání Resolve() dostalo novou, unikátní instanci (výchozí).



2、InstancePerLifetimeScope

V doméně životního cyklu každá závislost nebo volání vytváří jednu sdílenou instanci a pro každou jinou doménu životního cyklu je instance jedinečná a není sdílená.

Oficiální dokumentace vysvětluje: Nakonfigurujte komponentu tak, aby každá závislá komponenta nebo volání Resolve() v rámci jednoho ILifetimeScope dostávalo stejnou sdílenou instanci. Závislé komponenty v různých životnostních rozsahech dostanou různé instance.



3、InstancePerMatchingLifetimeScope

V identifikované doméně životního cyklu každá závislost nebo volání vytváří jednu sdílenou instanci. Instance v mateřské doméně mohou být sdíleny v podřízené identitní doméně identifikované životní cyklické domény. Pokud v celé hierarchii dědičnosti není nalezena žádná identifikovaná doména životního cyklu, je vyhozena výjimka: DependencyResolutionException.

Oficiální dokumentace vysvětluje: Nakonfigurujte komponentu tak, aby každá závislá komponenta nebo volání Resolve() v rámci ILifetimeScope označeného některou z daných tagů dostala stejnou sdílenou instanci. Závislé komponenty v celoživotních rozsahech, které jsou potomky označeného rozsahu, sdílejí instanci rodiče. Pokud v hierarchii není nalezen vhodný označený rozsah, je vyhozena výjimka DependencyResolution.



4、InstancePerOwned

V životním cyklu instance vytvořené instancí vlastněnou v doméně životního cyklu každá závislá komponenta nebo volání metody Resolve() vytváří jednu sdílenou instanci a doména dětského životního cyklu sdílí instance v doméně životního cyklu rodiče. Pokud v hierarchii dědičnosti není nalezena vhodná doména životního cyklu s podřízenými instancemi, je vyhodena výjimka: DependencyResolutionException.

Oficiální dokumentace vysvětluje: Nakonfigurujte komponentu tak, aby každá závislá komponenta nebo volání Resolve() v rámci ILifetimeScope vytvořeného vlastněnou instancí dostalo stejnou sdílenou instanci. Závislé komponenty v celoživotních rozsahech, které jsou potomky vlastněného rozsahu instance, budou sdílet instanci rodiče. Pokud v hierarchii není nalezen vhodný rozsah vlastněné instance, je vyhodena výjimka DependencyResolution.



5、SingleInstance

Pokaždé, když spoléháte na komponentu nebo voláte metodu Resolve(), dostanete stejnou sdílenou instanci. Ve skutečnosti je to model s jedním modelem.

Oficiální dokumentace vysvětluje: Nakonfigurujte komponentu tak, aby každá závislá komponenta nebo volání Resolve() dostávalo stejnou sdílenou instanci.



6、InstancePerHttpRequest



V kontextu HTTP požadavku sdílejte instanci komponenty. Dostupné pouze pro vývoj asp.net MVC.
Oficiální dokumentace vysvětluje: Sdílejte jednu instanci komponenty v kontextu jednoho HTTP požadavku.
Oficiální odkaz na dokumentaci: http://autofaccn.readthedocs.io/en/latest/lifetime/instance-scope.html




Předchozí:asp.net Soubor adresáře stránek je prázdný
Další:Výměna jádra Firefoxu GeckoFx, vypnutí varování před vyskakovacím oknem systému
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com