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: 21356|Odpověď: 1

[Zdroj] Efektivní Autofac pro IoC

[Kopírovat odkaz]
Zveřejněno 13.09.2016 13:14:12 | | |
IoC ~ Efektivní Autofac

Není pochyb o tom, že oblíbeným IoC kontejnerem Microsoftu není spring.net, Unity, ale Autofac, kvůli jeho efektivitě a jednoduchosti, takže se používá i pro projekty sadů vedené Microsoftem

ilustruje použití Autofacu.


Řekněme to teď:

V příští přednášce budu hovořit o využití Autofacu v konkrétních projektech pro projekty sadů.

Teď se podívejte na jeho životní cyklus

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.





Předchozí:ActionResult MVC
Další:ConcurrentDictionary vs. Dictionary+Locking - Dennis Gao
 Pronajímatel| Zveřejněno 13.09.2016 13:15:50 |
Metoda instalace Nuget:

Instalace Autofac

Install-Package Autofac
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