gpt4 book ai didi

c# - 使用 HttpContext.Current (C#) 访问 Global.asax.cs 中的公共(public)静态变量时出现问题

转载 作者:行者123 更新时间:2023-11-30 15:34:38 25 4
gpt4 key购买 nike

在 Web 项目中,我在 global.asax.cs 中定义了一个公共(public)静态变量(Store),需要在整个应用程序中访问它。

public class Global : HttpApplication
{
public static UserDataStore Store;

void Application_Start(object sender, EventArgs e)
{
Store = new UserDataStore();
Store.CurrentUsers = new Hashtable();
}

void Session_Start(object sender, EventArgs e)
{
if (!Store.UserExists(HttpContext.Current.Session.SessionID))
Store.AddUser(HttpContext.Current.Session.SessionID, "StubUser");
}
}

我需要在另一个无法引用 Web 项目(及其全局对象)的项目中访问它,因为它会导致循环引用。

我的解决方法是尝试使用 HttpApplication 对象检索 Store:

UserDataStore udStore = (UserDataStore) HttpContext.Current.Application["Store"];

这会编译,但会返回一个空对象。

我已经对谷歌视而不见,试图找到其他类似的例子,但我发现的大部分内容都支持以下两种方法之一:

  1. 使用 Application[""] 变量,根据这篇文章,这是次优的并且旨在实现经典 ASP 兼容性:http://support.microsoft.com/kb/312607
  2. 通过 Web 项目的 Global 类访问它,这在我们当前的设置中不是一个选项。

这看起来应该是可能的,所以希望我遗漏了一些愚蠢的东西。

如果您能提供任何帮助,我们将不胜感激。谢谢。

最佳答案

使用共享数据创建第三个(库)项目,并从您的其他两个项目中引用它。

关于c# - 使用 HttpContext.Current (C#) 访问 Global.asax.cs 中的公共(public)静态变量时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15979926/

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