kei*_*en7 3 asp.net-mvc idisposable
我一直都知道所有优秀的程序员都会在任何实现IDisposable的对象上调用Dispose,例如EF中的ObjectContext类.
我是asp.net mvc的新手,所以这可能是一个菜鸟问题但是这里......
public ActionResult Index()
{
using (var db = new MyObjectContext())
{
return View(db.People);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我运行此代码,我会收到一个错误(ObjectDisposedException),因为在View对数据执行操作之前已经处理了ObjectContext.这里有不同的方法吗?如何确保我的物品尽快被丢弃?
重写Controller.Dispose()方法并在其中处理您的对象:
private IDisposable _objectToDispose;
public ActionResult Index() {
var db = new MyObjectContext();
_objectToDispose = db;
return View(db.People);
}
protected override void Dispose(bool disposing) {
if (disposing && _objectToDispose != null) {
_objectToDispose.Dispose();
}
base.Dispose(disposing);
}
Run Code Online (Sandbox Code Playgroud)
MVC框架将在请求结束时自动调用Controller.Dispose().
| 归档时间: |
|
| 查看次数: |
1642 次 |
| 最近记录: |