gpt4 book ai didi

c# - 全局变量与 ASP.NET session 状态

转载 作者:太空狗 更新时间:2023-10-29 23:02:38 24 4
gpt4 key购买 nike

这听起来可能相当天真,但我正在开发一个跨多个页面的 Web 应用程序。所有这些页面都实例化了相同的类对象,这些对象带有使用其 API 访问 CMS 的方法。目前,当用户开始创建内容时,我会存储变量,例如内容位于 Session 变量中的文件夹 ID。

我的问题是:我能否实例化一个可在所有页面上使用的类的单个实例,而不必在每个页面上都这样做?如果是这样,每个访问该页面的人都会得到他们自己的类(class)版本吗?我认为使用静态变量和方法不是可行的方法,因为它们在内存中共享。此外,如果要在 .net C# 应用程序的 Web 应用程序中全局使用某些内容,在哪里/如何声明?

最佳答案

我建议创建一个继承自 System.Page 的基类。然后让你的页面代码继承自它。

然后,在基类中,创建一个引用您的对象的属性。像这样,例如:

public class BasePage : System.Web.UI.Page
{
public Foo CurrentFoo
{
get
{
return (Foo)Session["FooSessionObject"];
}
set
{
if(Session["FooSessionObject"] == null)
{
// instantiate a new one
Session["FooSessionObject"] = new Foo();
}
Session["FooSessionObject"] = value;
}
}
}

然后,从任何页面的任何地方,只需执行 CurrentFoo。您将可以访问任何属性。

这使得后面的代码漂亮干净。

关于c# - 全局变量与 ASP.NET session 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6768038/

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