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

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

[Източник] Обобщение на методологията за създаване на autofac instance

[Копирай линк]
Публикувано в 5.01.2018 г. 21:25:48 ч. | | |

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.
Официалната документация обяснява: Сподели една екземпляр на компонента в контекста на една HTTP заявка.
Официален линк към документацията: http://autofaccn.readthedocs.io/en/latest/lifetime/instance-scope.html




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

Mail To:help@itsvse.com