【发布时间】:2019-02-15 19:54:50
【问题描述】:
当我将带有 Autofac 的 DbContext 配置为“生命周期范围”时,则在请求范围内,这意味着它在请求结束时被处置。
但是,当我们在 MVC 应用程序的 Application_Start() 方法中从容器中获取 DbContext 时会发生什么?
我们有一个设置类被设置为单例:
builder.RegisterType<Settings>().As<ISettings>().SingleInstance();
在Application_Start() 中,我们从容器中获取设置:
var settings = DependencyResolver.Current.GetService<ISettings>();
Settings 类依赖于 DbContext - 并且 DbContext 在生命周期范围内设置
我们知道这是一个captive dependency,但不认为这是一个问题,因为该类只使用一次上下文。
我担心DbContext 是否会释放其资源。
在Application_Start() 中,我们是在请求的范围内还是在应用程序的范围内?
如果我们在应用程序的范围内,“生命周期范围”是否意味着在应用程序停止之前我们不会处理 DbContext?
【问题讨论】:
-
你是如何获得上下文的?你能分享一些代码吗?
-
@CyrilDurand 问题用代码示例扩展
标签: asp.net-mvc dependency-injection autofac