Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc IDisposable ASP.net MVC控制器_Asp.net Mvc - Fatal编程技术网

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书籍??;)谢谢