【发布时间】:2009-02-02 13:02:42
【问题描述】:
我正在开发一个 asp.net-mvc 应用程序。 linq 数据上下文通过结构映射传递到我的服务对象中。我已经设置了一个混合范围。这一切都很好。
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() 中设置断点并查看它何时发生(如果有的话)。我会对对此的回应感兴趣
-
您最终采用了什么解决方案?我目前有类似的担忧:stackoverflow.com/questions/3665336/…
标签: c# asp.net-mvc linq inversion-of-control structuremap