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

标签 c# asp.net-mvc

我想知道 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/

相关文章:

C# REST 客户端 - 在 XML 中编码特殊字符

c# - 使用 ASP.NET MVC 应用程序定期插入 Azure 数据库

Asp.Net MVC - 重载操作方法

c# - 与 System.Web.Mvc 的版本冲突

c# - ASP.NET Web API HTTP 400 错误请求

c# - 在 C# 中将 FileInfo 对象序列化为 XML

c# - 通过调用关联的属性而不是数据成员本身来从 ctor 中初始化私有(private)数据成员是一种好习惯吗?

c# - 我如何用扩展方法注入(inject)一个类? ASP.NET 标识

c# - 有没有办法获得指向泛型类型的 "in"参数的指针?

c# - NaoQi 和 Leap 问题 : An unhandled exception of type 'System.BadImageFormatException' . .. 并且无法加载文件或程序集