我创建了一个自定义范围访问器(它只返回 DefaultLifetimeScope),以便能够添加自定义范围的生活方式。然后将该组件注册为
Component
.For<..>
.LifestyleScoped<CustomScope>()
但是,我不知道如何实际开始新的 CustomScope 范围/生命周期。该文档显示使用
using (Container.BeginScope()) {
// ..
}
但我的目标是创建/开始/启动特定范围,而不是通用LifestyleScoped()
注册。新范围应该只影响显式注册到 CustomScope 的组件;不是针对其他范围生活方式注册的通用范围组件或组件。
开始(我的自定义范围)范围/生命周期的过程是什么?
请链接到相关文档;正如我所问的,因为我无法轻易找到它。该代码使用的是温莎城堡 3.3。
背景:
我来自 Autofac,正在寻找相当于每个匹配生命周期范围的实例来在 EF 上下文上建立 UoW。“每个请求”可能有多个 UoW,并且不同的存储库可能有不同的 UoW - 我还希望将来支持嵌套。
虽然有许多文章谈论创建 UoW 模式,但它们 [都] 与 HTTP 或 WFC 请求等某些上下文相关联(错误地,IMOHO)——这不是这个问题的主题。我对如何启动自定义范围特别感兴趣,该范围通过调用图向下流动并“存在于” using 块中。
笔记:
(BoundTo()
和LifestyleBoundTo()
/ LifestyleBoundToNearest()
)生活方式对对象图起作用(并且需要更改类型),并且切换到对象图严格来说并不是这个问题的解决方案/答案。但是,如果可以为他们提供一个好的案例..