当前位置: 首页 > 编程语言 > C#

Session分享

时间:2023-04-10 17:31:30 C#

SessionContainingItemsImplementingIDisposable在ASP.NET中,如果一个item保持在实现IDisposable的session状态,但是当session过期时,应用程序永远不会被应用程序专门移除和释放,所以调用对象上的Dispose()执行Dispose()中的任何代码?如果正确实现了IDisposable模式,则可以(即类的析构函数将处理对象的处理)。我不相信ASP.NET会话管理器对在实现IDisposable的类上显式调用Dispose()做出任何保证。请注意,尽管Mark强烈反对,但我并不是建议“定期”添加终止符。我只是建议,如果您想在会话过期时调用对象的Dispose方法,这是一个可行的选择。我不同意肖恩的回答;首先,不应定期将终结器添加到类中,即使它们是IDisposable的——终结器只应在表示非托管资源的类中使用。相反,具有终结器的类通常也是IDisposable的。回答问题:是Dispose()调用-不,不是。该对象将在将来的某个时候被垃圾收集(不确定),仅此而已。Finalizers并没有在这里添加太多,因为任何封装的对象也已经符合收集条件(假设它们没有在其他地方被引用)。我担心会话中有一次性对象。它几乎肯定会为您带来可伸缩性问题。任何Disposable都可能与一些有限的资源相关联,如果您有许多活动会话,这些资源可能会被消耗掉。其次,我预计许多(大多数?)一次性对象在网络场中不能很好地工作,因为它们所依赖的资源可能在一台机器上是本地的,并且它们不会在同一机器状态下被序列化和反序列化。以上就是C#学习教程:包括实现IDisposable的item的session分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: