use*_*648 5 dispose controller class dbcontext asp.net-mvc-5
我正在开发一个MVC 5互联网应用程序.我的控制器中有以下方法:
protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
Run Code Online (Sandbox Code Playgroud)
如果我在这个控制器中有一个使用相同db对象的Dispose()服务类,我是否需要在这个服务类中有一个方法,或者Dispose()控制器中的方法是否需要处理这个?
提前致谢.
一般来说:班级应该处理它负责的任何一次性用品。责任本质上归结为它是否“拥有”依赖关系。换句话说,如果它是该类上的一个字段并且该类实例化了它,那么它也应该处理它。
对于您的服务,虽然服务类上可能有一个上下文字段,但您是通过构造函数将上下文注入到服务中,而不是让服务实例化它。因此,将不会为服务处置上下文的,因为它没有“自己的”,它是适当的。
此外,如果您要使用依赖注入容器,这样控制器就不再实例化上下文,而只是将其注入到其构造函数中,那么您也不应该在控制器中处理它。DI 容器将最终负责处置。
| 归档时间: |
|
| 查看次数: |
1682 次 |
| 最近记录: |