如何确保ASP.NET MVC控制器中创建的对象都正确调用IDisposable接口?

2026-03-30 12:071阅读0评论SEO基础
  • 内容介绍
  • 相关推荐

本文共计227个文字,预计阅读时间需要1分钟。

如何确保ASP.NET MVC控制器中创建的对象都正确调用IDisposable接口?

我深知所有优秀的程序员都会在实现IDisposable接口的对象上调用Dispose方法,例如EF中的ObjectContext类。作为ASP.NET MVC的新手,这可能是你遇到的一个常见问题,但具体是...

public ActionResult Index()

我一直都知道所有优秀的程序员都会在任何实现IDisposable的对象上调用Dispose,例如EF中的ObjectContext类.

我是asp.net mvc的新手,所以这可能是一个菜鸟问题但是这里……

public ActionResult Index() { using (var db = new MyObjectContext()) { return View(db.People); } }

如果我运行此代码,我会收到一个错误(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); }

MVC框架将在请求结束时自动调用Controller.Dispose().

如何确保ASP.NET MVC控制器中创建的对象都正确调用IDisposable接口?

本文共计227个文字,预计阅读时间需要1分钟。

如何确保ASP.NET MVC控制器中创建的对象都正确调用IDisposable接口?

我深知所有优秀的程序员都会在实现IDisposable接口的对象上调用Dispose方法,例如EF中的ObjectContext类。作为ASP.NET MVC的新手,这可能是你遇到的一个常见问题,但具体是...

public ActionResult Index()

我一直都知道所有优秀的程序员都会在任何实现IDisposable的对象上调用Dispose,例如EF中的ObjectContext类.

我是asp.net mvc的新手,所以这可能是一个菜鸟问题但是这里……

public ActionResult Index() { using (var db = new MyObjectContext()) { return View(db.People); } }

如果我运行此代码,我会收到一个错误(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); }

MVC框架将在请求结束时自动调用Controller.Dispose().

如何确保ASP.NET MVC控制器中创建的对象都正确调用IDisposable接口?