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

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

[Джерело] Підсумок методології створення екземплярів autofac

[Копіювати посилання]
Опубліковано 05.01.2018 21:25:48 | | |

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




Попередній:asp.net Файл директорії сайту Get Site порожній
Наступний:Заміна ядра Firefox GeckoFx, попередження про вимкнення системи
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com