c# – StructureMap InstanceScope.Hybrid和IDisposable

c# – StructureMap InstanceScope.Hybrid和IDisposable,第1张

概述我正在开发一个asp.net-mvc应用程序. linq数据上下文通过结构图传递到我的服务对象中.我已经准备好了混合动力的范围.这一切都很好. protected override void configure(){ ForRequestedType<AetherDataContext>() .TheDefaultIs(() => new AetherDataContex 我正在开发一个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.

总结

以上是内存溢出为你收集整理的c# – StructureMap InstanceScope.Hybrid和IDisposable全部内容,希望文章能够帮你解决c# – StructureMap InstanceScope.Hybrid和IDisposable所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1245099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存