Asp.net mvc IDisposable ASP.net MVC控制器
我正在控制器的默认构造函数中创建一个Asp.net mvc IDisposable ASP.net MVC控制器,asp.net-mvc,Asp.net Mvc,我正在控制器的默认构造函数中创建一个EntityFramework对象 要在调用任何控制器内的action方法后释放内存, 我想让控制器成为一次性的。这是个好主意吗 public somethingController : Controller , IDisposable { // implement the dispose method here public void Dispose () { EntityFrameWorkObject.Dispo
EntityFramework
对象
要在调用任何控制器内的action方法后释放内存,
我想让控制器成为一次性的。这是个好主意吗
public somethingController : Controller , IDisposable
{
// implement the dispose method here
public void Dispose ()
{
EntityFrameWorkObject.Dispose();
}
}
您觉得怎么样?我建议为dispose datacontext对象实现IHttpModule。我与Microsoft unity合作的实际代码
public void Init(HttpApplication application)
{
application.EndRequest += new EventHandler(this.Application_EndRequest);
}
private void Application_EndRequest(object source, EventArgs e)
{
IoCWorker.Resolve<IRepositoryContext>().Terminate();
}
public void Init(HttpApplication应用程序)
{
application.EndRequest+=新的EventHandler(this.application\u EndRequest);
}
私有无效应用程序\u EndRequest(对象源,事件参数e)
{
IoCWorker.Resolve().Terminate();
}
是的,这是个好主意。实际上,这是推荐的模式,并且通常使用。如果您想拥有类范围的对象,并且想在释放类后释放其资源,可以在Dispose()中执行此操作。是的,没错
public somethingController : Controller
{
// implement the dispose method here
public void Dispose ()
{
EntityFrameWorkObject.Dispose();
}
}
您不需要添加IDisposable
,因为控制器调用已经实现了它。非常感谢您在非常重要的一点上再次提到我。我仍然是这种模式的初学者,比如微软unity。你有没有其他简单的解决方案,因为我不想重新编码整个应用程序,顺便问一下,还有任何有用的链接,unity书籍??;)谢谢