我正在研究一個asp.net-mvc應用程序。 linq數據上下文正在通過結構圖傳遞到我的服務對象中。我已經有了一個混合的範圍。這一切都很好。StructureMap InstanceScope.Hybrid和IDisposable
protected override void configure()
{
ForRequestedType<AetherDataContext>()
.TheDefaultIs(() => new AetherDataContext())
.CacheBy(InstanceScope.Hybrid);
}
問題是我一直在運行我們的內存,我想知道IDisposable接口是否真的被調用。
任何人有任何想法?
如果沒有人有任何其他的想法可能會導致我的記憶異常?
更新:
所以一些額外的信息,我只是在裏面塞了幾個方法到我的數據上下文的放剎車點。
protected override void Dispose(bool disposing)
{
Debug.WriteLine("Disposing: " + DateTime.Now);
base.Dispose(disposing);
}
public new void Dispose()
{
Debug.WriteLine("Disposing: " + DateTime.Now);
base.Dispose();
}
我不太確定我是否以正確的方式進行此操作,我猜測新方法將被調用?
無論如何,制動點都沒有被擊中。然而,同一個類的構造函數在每個請求上都被調用。不理想我在想。
我一直想知道IDisposables和各種緩存策略會發生什麼。如果在文檔中找不到任何內容,請在Dispose()中粘貼斷點並查看它何時發生(如果有的話)。我會對這個 – 2009-02-02 13:46:46
的迴應感興趣,你最終會採用哪種解決方案?我有一個目前類似的關注:http:// stackoverflow。com/questions/3665336/iqueryable-repository-with-structuremap -ioc-how-do-i-implement -isisposable – RPM1984 2010-09-08 09:20:07