2011-04-14 138 views
4

我在我的控制器的默認構造函數中創建了一個EntityFramework對象。IDisposable ASP.net MVC控制器

要在任何控制器內調用動作方法後釋放內存, 我想讓控制器一次性使用。這是一個好主意嗎?

public somethingController : Controller , IDisposable 
{ 
    // implement the dispose method here 
    public void Dispose() 
    { 
     EntityFrameWorkObject.Dispose(); 
    } 
} 

你覺得呢?

回答

2

我推薦IHttpModule實現處理datacontext對象。我的實際代碼與Microsoft統一工作。

public void Init(HttpApplication application) 
{ 
    application.EndRequest += new EventHandler(this.Application_EndRequest); 
} 

private void Application_EndRequest(object source, EventArgs e) 
{ 
    IoCWorker.Resolve<IRepositoryContext>().Terminate(); 
} 
+0

非常感謝你讓我在非常重要的一點。我仍然是像微軟統一這樣的模式的初學者。你有沒有其他簡單的解決方案,因爲我不想重新編碼整個應用程序,並通過任何有用的鏈接,統一書籍? ;) 謝謝 – 2011-04-14 10:21:14

0

是的,這是個好主意。其實這是推薦的模式,通常使用。如果您希望擁有類寬對象,並且想在釋放類之後釋放其資源,請在Dispose()中執行此操作。

0

是的,那是對的。

public somethingController : Controller 
{ 
    // implement the dispose method here 
    public void Dispose() 
    { 
     EntityFrameWorkObject.Dispose(); 
    } 
} 

您不需要添加IDisposable,因爲控制器調用已經實現了它。