c# – StructureMap InstanceScope.Hybrid和IDisposable

我正在开发一个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();
}

我不太确定我这样做是正确的,我猜这个新方法会被调用吗?

无论如何,两个制动点都没有被击中.但是,每个请求都会调用一个类的构造函数.我不太理想.

解决方法

这几乎是我2天前提出的问题的精确副本: Session containing items implementing IDisposable

InstanceScope.Hybrid只将对象存储在HttpContext.Current.Items中(如果存在)或ThreadLocal存储,否则InstanceScope.HttpSession的工作方式与使用HttpSession和ThreadLocal的方式不同.项目集合按照请求生存,因此如果您实现我的问题中指出的模式,您应该在当前请求的末尾看到dispose fired.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...