Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 21356|Отговор: 1

[Източник] IoC ефективен Autofac

[Копирай линк]
Публикувано в 13.09.2016 г. 13:14:12 ч. | | |
IoC ~ Ефективен Autofac

Няма съмнение, че любимият IoC контейнер на Microsoft не е spring.net, Unity, а Autofac, заради ефективността си, заради простотата си, затова се използва и за проекти, водени от Microsoft, овощни градини

илюстрира използването на Autofac.


Нека го наречем сега:

В следващата лекция ще говоря за използването на Autofac в конкретни проекти за овощни градини.

Сега погледнете жизнения му цикъл

1、InstancePerDependency

Създайте нов уникален инстанс за всяка зависимост или повикване. Това е и стандартният начин за създаване на инстанции.

Официалната документация обяснява: Конфигурирайте компонента така, че всеки зависим компонент или повикване към Resolve() да получава нов, уникален инстанс (по подразбиране).

2、InstancePerLifetimeScope

В домейн от жизнения цикъл всяка зависимост или повикване създава един споделен инстанс, а за всеки различен домейн от жизнения цикъл екземплярът е уникален и не се споделя.

Официалната документация обяснява: Конфигурирайте компонента така, че всеки зависим компонент или повикване към Resolve() в рамките на един ILifetimeScope да получава една и съща, споделена инстанция. Зависимите компоненти в различни обхвати на живот ще получат различни инстанции.

3、InstancePerMatchingLifetimeScope

В идентифициран домейн от жизнения цикъл всяка зависимост или повикване създава един споделен екземпляр. Екземплярите в родителския домейн могат да се споделят в домейна на дъщерната идентичност на идентифицирания домейн жизнения цикъл. Ако не се намери идентифициран домейн от жизнения цикъл в цялата йерархия на наследяване, се хвърля изключение: DependencyResolutionException.

Официалната документация обяснява: Конфигурирайте компонента така, че всеки зависим компонент или повикване към Resolve() в ILifetimeScope, тагнат с някоя от предоставените стойности на тагове, да получава една и съща, споделена инстанция. Зависимите компоненти в обхватите на живота, които са деца на тагнатия обхват, ще споделят инстанцията на родителя. Ако не може да се намери подходящо тагнат обхват в йерархията, се хвърля изключение DependencyResolution.

4、InstancePerOwned

В жизнения цикъл на инстанция, създадена от инстанция, притежавана в домейн на жизнения цикъл, всеки зависим компонент или повикване към метода Resolve() създава един споделен екземпляр, а домейнът на дъщерния жизнен цикъл споделя инстанциите в домейна на родителския жизнен цикъл. Ако в йерархията на наследяване не се намери подходящ домейн на жизнения цикъл с дъщерни инстанции, се хвърля изключение: DependencyResolutionException.

Официалната документация обяснява:

Конфигурирайте компонента така, че всеки зависим компонент или повикване към Resolve() в ILifetimeScope, създаден от собствена инстанция, да получава една и съща, споделена инстанция. Зависимите компоненти в обхватите на живота, които са деца на обхвата на собствения инстанс, ще споделят инстанцията на родителя. Ако в йерархията не може да се намери подходящ обхват на собственост на инстанция, се хвърля DependencyResolutionException.

5、SingleInstance

Всеки път, когато разчитате на компонент или извикате метода Resolve(), получавате една и съща споделена инстанция. Всъщност, това е модел с един тон.

Официалната документация обяснява: Конфигурирайте компонента така, че всеки зависим компонент или повикване към Resolve() да получава една и съща споделена инстанция.

6、InstancePerHttpRequest

В контекста на Http заявка, споделяйте екземпляр на компонент. Достъпен само за разработка asp.net MVC.





Предишен:ActionResult на MVC
Следващ:ConcurrentDictionary срещу речник+заключване - Денис Гао
 Хазяин| Публикувано в 13.09.2016 г. 13:15:50 ч. |
Метод на инсталация на Nuget:

Инсталиране на Autofac

Install-Package Autofac
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com