Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 21356|Відповідь: 1

[Джерело] IC-ефективний Autofac

[Копіювати посилання]
Опубліковано 13.09.2016 13:14:12 | | |
IoC ~ Efficient Autofac

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

ілюструє використання автофаку.


Назвемо це зараз:

У наступній лекції я розповім про використання Autofac у конкретних проектах садів.

Тепер подивіться на його життєвий цикл

1、InstancePerDependency

Створіть новий унікальний екземпляр для кожної залежності або виклику. Це також стандартний спосіб створення інстансів.

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

2、InstancePerLifetimeScope

У домені життєвого циклу кожна залежність або виклик створює один спільний екземпляр, і для кожного окремого домену життєвого циклу екземпляр є унікальним і не є спільним.

Офіційна документація пояснює: Налаштуйте компонент так, щоб кожен залежний компонент або виклик Resolve() в межах одного ILifetimeScope отримував однаковий спільний екземпляр. Залежні компоненти в різних сферах життя отримують різні екземпляри.

3、InstancePerMatchingLifetimeScope

У визначеному домені життєвого циклу кожна залежність або виклик створює єдиний спільний екземпляр. Екземпляри в батьківському домені можуть бути спільні в дочірньому домені ідентифікації ідентифікованого домену життєвого циклу. Якщо в усій ієрархії спадкування не знайдено ідентифікованого домену життєвого циклу, створюється виняток: DependencyResolutionException.

Офіційна документація пояснює: Налаштуйте компонент так, щоб кожен залежний компонент або виклик Resolve() у ILifetimeScope, позначеному будь-яким із наданих тегів, отримував однаковий спільний екземпляр. Залежні компоненти в lifetime scope, які є дочерними дітьми позначеного діапазону, будуть мати спільний екземпляр батьківського діапазону. Якщо в ієрархії не знайдено відповідного позначеного обсягу об'єкта, створюється виключення DependencyResolutionException.

4、InstancePerOwned

У життєвому циклі екземпляра, створеного екземпляром, що належить домену життєвого циклу, кожен залежний компонент або виклик методу Resolve() створює один спільний екземпляр, а дочірній домен життєвого циклу ділить екземпляри в домені батьківського життєвого циклу. Якщо в ієрархії спадкування не знайдено відповідного домену життєвого циклу з дочірніми екземплярами, створюється виняток: DependencyResolutionException.

Офіційна документація пояснює:

Налаштуйте компонент так, щоб кожен залежний компонент або виклик Resolve() у ILifetimeScope, створеному власним екземпляром, отримував однаковий спільний екземпляр. Залежні компоненти в сфері цілей життя, які є дочерніми частинами домену власного екземпляра, будуть ділити екземпляр батька. Якщо в ієрархії не знайдено відповідного власного обсягу екземпляра, застосовується DependencyResolutionException.

5、SingleInstance

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

Офіційна документація пояснює: Налаштуйте компонент так, щоб кожен залежний компонент або виклик 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