gpt4 book ai didi

c# - session 可以在 session 结束时间调用 dispose 方法吗?

转载 作者:太空狗 更新时间:2023-10-30 01:23:02 25 4
gpt4 key购买 nike

我想知道 IDisposable 对象是否会在 session 结束时释放。

我知道,我可以自己处理 session 结束事件。但是我想写一个 IDisposable 类。

比如我有

public class MyObject : IDisposable
{
// some properties

public void Dispose()
{
// disposing
}
}

我需要在 session 结束时处理这个对象:

    protected void Session_End(object sender, EventArgs e)
{
if (Session["key"] != null)
((MyObject)Session["key"]).Dispose();
}

所以,我想知道在 session 结束时该操作会自动执行,或者我需要按上面的方式编写。

最佳答案

Session_End 不会自动处理 IDisposable 对象,因此您的 Session_End 解决方案是正确的。

但是:

  • Session_End 仅在您使用“inproc” session 时调用(但对于其他类型,您需要一个可序列化的对象)
  • 它仅在 session 超时到期后调用,因此您将此资源额外保留 20 分钟(或任何超时时间)

因此,请尝试找到一种不需要在 Session 中存储 IDisposable 对象的解决方案。

关于c# - session 可以在 session 结束时间调用 dispose 方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12347044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com