CodeBehind中的对象存在多长时间

本文关键字:长时间 存在 对象 CodeBehind | 更新日期: 2023-09-27 17:53:16

如果我在.aspx页面的代码隐藏中创建了一个对象,我可以期望该对象存在多长时间?它会支持回发吗?我能把它传递到另一页吗?我能让它存活的时间和会话对象一样长吗?

我搜索了网页,希望能找到一份文件,解释从代码背后创建的对象的生命周期,以及如何与这个生命周期进行交互;如有任何相关连结,我将不胜感激。

顺便说一下,我在代码背后使用c#,但我想大多数针对VB的建议也适用。

CodeBehind中的对象存在多长时间

如果我在.aspx页面的代码隐藏,多长时间我能指望那个东西活下来吗?将它能在后台运行吗?我可以以某种方式传递到另一个页面?可以我让它活得和,比如说会话对象?

你可以在会话中保存对象实例:

Session["Foo"] = new MyFoo();

您可以在任何访问会话的页面上检索实例:

MyFoo foo = (MyFoo) Session["Foo"];

另一种选择是使用static变量-在这种情况下,变量保持其值直到应用程序域被销毁(即当IIS重新启动时)-但它也是全局的,因为它对所有用户具有相同的值(因为它根本与会话无关)。

对象将只存在于页面中,即在页面请求的持续时间内。如果你想让它存活更长的时间,你可以将它存储在Session中,并在每次请求时检索它。

隐藏代码在请求期间有效。它不会跨回发。如果需要跨回发,可以向Session添加值。这同样适用于VB。