我创建了一个custom Scope Accessor(它只是返回DefaultLifetimeScope),以便能够添加自定义作用域生活方式。该组件然后注册为如何在Windsor Castle的特定Custom Scoped生活方式中使用“BeginScope”?
Component
.For<..>
.LifestyleScoped<CustomScope>()
不过,我很茫然,如何真正开始新CustomScope范围/寿命。 The documentation shows开始使用
using (Container.BeginScope()) {
// ..
}
一个新的范围,但我的目标是创建/开始/启动特定范围,而不是一个通用LifestyleScoped()
注册。新范围只应该影响显式注册到CustomScope的组件;不是针对其他范围生活方式注册的通用范围组件或组件。
什么是开始(我的自定义范围)范围/生命周期的过程?
请链接到相关文件;因为我在问,因为我无法很容易地找到它。代码使用Castle Windsor 3.3。
背景:
我从Autofac到来,正在寻找一个Instance Per Matching Lifetime Scope相当于一个多EF背景下,建立一个UOW。 “每个请求”可能有多个UoW,并且对于不同的存储库可能有不同的UoW - 我也希望在未来支持嵌套。虽然有很多文章谈论创建一个UoW模式,但它们都被绑定(错误地,IMOHO)到某些上下文,比如HTTP或WFC请求 - 而这不是这个问题的关键。我特别感兴趣的是如何开始一个自定义范围,该范围通过调用图并流入使用块。
注:
的BoundTo()
(和LifestyleBoundTo()
/LifestyleBoundToNearest()
)生活方式有对抗对象的图形化(和需要改变类型),并且在切换到这样是不严格的溶液/回答这个问题。但是,如果可以为他们制作一个好的案例。