About .NET, ASP.NET, MVC, C#, WPF, WCF and everything related to .NET and more.

Mugen Injection [Жизненые циклы компонентов]

Когда MugenInjector получает запрос для какого-то компонента, он может вернуть один экземпляр для всех запросов(SingletonScopeLifecycle), или каждый раз новый (TransientScopeLifecycle) или один экземпляр в зависимости от какого-то контекста, thread, HTTP запрос и т.д.

Список всех доступных жизненных циклов:

  • TransientScopeLifecycle - в случаи активации через рефлексию создается новый экземпляр, не должны быть повторно использованы.
  • SingletonScopeLifecycle - будет создан только один экземпляр компонента, а затем должен будет повторно использоваться для всех последующих запросов.
  • ThreadScopeLifecycle - для каждого потока используется только один экземпляр, но для каждого потока создается свой.
  • UnitOfWorkScopeLifecycle - внутри одного контейнера используется только один экземпляр, но в дочерних контейнерах будет создан свой экземпляр.
  • WeakReferenceScopeLifecycle - создается новый компонент и помещается в WeakReference, до тех пор пока WeakReference будет содержать компонент, он не будет пересоздан.
  • ManagedScopeLifecycle - для управление жизненым циклом используется IManagedScope.
  • CustomScopeLifecycle - используется пользовательский жизненный цикл.
  • WebContextScopeLifecycle - для управление жизненным циклом используется HttpContext, или HttpSessionState, или OperationContext.

Вы можете задать тип жизненного цикла, который будет использоваться всеми Binding при создании, если он не задан явно:
// Create your MugenInjector.
_injector = new MugenInjector();
_injector.Settings.DefaultScopeLifecycleFactory = () => new UnitOfWorkScopeLifecycle();

Комментарии
Оставить комментарий
*bold*
_italics_
+underline+
* Bullet List
** Bullet List 2
# Number List
## Number List 2
{"Do not apply formatting"}
{code:language} code here {code:language}.
Supports: aspx c#, c#, c++, html, sql, xml
[url:http://www.example.com]