2010-10-31 43 views
-2

我正在重寫ASP.NET MVC2控制器中的Controller.Dispose(bool)方法,以便根據需要處理事件,同時儘可能長時間地保留它們。這與在從Controller的操作方法返回之前處置它們相反。這是一個管理ASP.NET MVC中的Disposable對象的好方法嗎?

我的問題,簡而言之;這是否按我的預期工作?

從我目前看到的情況來看,這似乎提供了我所需要的;所有IDisposable對象都處理完畢(Controller.Dispose()方法調用虛擬Controller.Dispose(bool)),但直到不再需要爲止。


編輯#2:

我明白什麼我應該做的建議。我的意思是;事實上,我投票贊成這樣一個答案。

對於這個問題的目的,不過,讓我們假設我已經評估自己的需要,並已決定,在我看來調用一個偶然相關的實體屬性最適合,而且我已經決定,我並不需要一個依賴注入框架來確保我的對象被正確處理。

我現在真正需要知道的是,如果任何人都知道在重寫的Controller.Dispose(bool)方法中處理這些對象時與生命有關的問題。

+3

你的視圖不應該運行額外的查詢。 :) – bzlm 2010-10-31 22:24:31

+0

它沒有明確運行額外的查詢;它幾乎總是一些相關的實體類成員,我最終根據以視圖爲中心的信息調用。我知道這些信息可以通過EF或L2S預先加載,但我並不總是知道需要什麼,有時候他們只是需要某些行。有一件事我喜歡EF/L2S的東西,那就是我可以有條件地展示那些沒有看起來/感覺像'查詢'的東西。是的 - 我知道一個查詢實際上正在發生。但這是我爲我的應用程序所做的價值判斷。 – 2010-11-01 14:45:05

回答

4

+1,謝謝你的提問。根據我自己的經驗,我無法給你一個答案,但我確實發現了Stephen Walter的this post描述了你的情況(我相信),並且comment@Craig Stuntz表明了你描述的相同模式。聽起來你很好:)

5

看看控制和依賴注入的反轉。那裏的框架(結構圖,Ninject,Autofac,Unity等)將根據您分配給該對象的範圍爲您處理對象處理(例如:每個請求範圍將在請求結束時處理對象)

+0

+1我對此表示讚賞,因爲這是一個很好的答案,對許多通過搜索引擎發現這個問題的人很有幫助。儘管這不是我正在尋找的答案,我只想知道當我用控制器處理這些對象時,是否有任何事情我沒有考慮過這些對象的生命週期。 – 2010-11-01 13:19:22

相關問題