Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 21356|Ответ: 1

[Источник] IoC эффективный Autofac

[Скопировать ссылку]
Опубликовано 13.09.2016 13:14:12 | | |
IoC ~ Эффективный Autofac

Нет сомнений, что любимый контейнер IoC Microsoft — не spring.net Unity, а Autofac, благодаря своей эффективности и простоте, поэтому он также используется для проектов садов под руководством Microsoft

иллюстрирует использование автофака.


Давайте определим это сейчас:

В следующей лекции я расскажу об использовании Autofac в конкретных проектах для садов.

Теперь посмотрите на её жизненный цикл

1、InstancePerDependency

Создайте новый уникальный экземпляр для каждой зависимости или вызова. Это также стандартный способ создания экземпляров.

Официальная документация объясняет: Настройте компонент так, чтобы каждый зависимый компонент или вызов Resolve() получал новый, уникальный экземпляр (по умолчанию).

2、InstancePerLifetimeScope

В домене жизненного цикла каждая зависимость или вызов создаёт единый общий экземпляр, и для каждого отдельного домена жизненного цикла экземпляр уникален и не является общим.

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

3、InstancePerMatchingLifetimeScope

В определённом домене жизненного цикла каждая зависимость или вызов создаёт единый общий экземпляр. Экземпляры в родительском домене могут быть совместны в дочернем домене идентичности идентифицированного домена жизненного цикла. Если во всей иерархии наследования не найдено идентифицированный домен жизненного цикла, создаётся исключение: DependencyResolutionException.

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

4、InstancePerOwned

В жизненном цикле экземпляра, созданного экземпляром, принадлежащим в домене жизненного цикла, каждый зависимый компонент или вызов метода Resolve() создаёт один общий экземпляр, а дочерний домен жизненного цикла разделяет экземпляры в домене родительского жизненного цикла. Если в иерархии наследования не найден подходящий домен жизненного цикла с дочерними экземплярами, создаётся исключение: DependencyResolutionException.

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

Настройте компонент так, чтобы каждый зависимый компонент или вызов Resolve() внутри ILifetimeScope, созданного собственным экземпляром, получал одинаковый общий экземпляр. Зависимые компоненты в lifetime scope, которые являются дочерними делами владелического экземпляра, будут делить экземпляр родителя. Если в иерархии не найдено соответствующее владенческое область действия экземпляра, создаётся исключение DependencyResolution.

5、SingleInstance

Каждый раз, когда вы зависите от компонента или вызываете метод Resolve(), получаете один и тот же общий экземпляр. На самом деле, это модель Singleton.

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

6、InstancePerHttpRequest

В контексте HTTP-запроса используйте экземпляр компонента. Доступен только для asp.net MVC разработки.





Предыдущий:ActionResult MVC
Следующий:ConcurrentDictionary vs. Dictionary+Locking — Деннис Гао
 Хозяин| Опубликовано 13.09.2016 13:15:50 |
Метод установки Nuget:

Установка Autofac

Install-Package Autofac
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com