Я создал custom Scope Accessor (он просто возвращает DefaultLifetimeScope), чтобы добавить пользовательский образ жизни. Компонент затем регистрируется в качествеКак «BeginScope» для определенного стиля пользовательского стиля в замке Виндзор?
Component
.For<..>
.LifestyleScoped<CustomScope>()
Однако, я в недоумении, как на самом деле начать новый CustomScope сфера/срок службы. The documentation shows начинает новую область с помощью
using (Container.BeginScope()) {
// ..
}
, но моя цель состоит в том, чтобы создать/начать/начать конкретных сферу, не то, что для общего LifestyleScoped()
регистрации. Новая область действия должна влиять только на компоненты, явно зарегистрированные в CustomScope; не общих компонентов или компонентов, зарегистрированных в отношении других видов деятельности, охватываемых областью применения.
Каков процесс создания (Моей пользовательской области) области действия/жизни?
Просим связаться с соответствующей документацией; как я прошу, потому что я не смог найти его с готовностью. Код использует Castle Windsor 3.3.
фон:
гряда из Autofac и я ищу эквивалент в Instance Per Matching Lifetime Scope, чтобы установить UOW над контекстом EF. Может быть несколько UoWs «за запрос», и могут быть разные UoW для разных репозиториев - мне также будет нужна поддержка для гнездования в будущем.
Хотя в многочисленных статьях рассказывается о создании шаблона UoW, они [все] связаны (некорректно, IMOHO) с некоторым контекстом, например с запросом HTTP или WFC, и об этом не говорится. Меня особенно интересует, как запустить настраиваемую область, которая течет через график вызовов и «живет внутри» используемого блока.
Примечание:
В BoundTo()
(и LifestyleBoundTo()
/LifestyleBoundToNearest()
) образом жизни работать против объектно-графа (и требует изменения типов) и переключение на такой не является строго решением/ответа на этот вопрос. Однако, если для них может быть сделан хороший случай.